
Sesuai judul pada artikel, bahasan kali ini saya akan menjabarkan tentang auto remover uploaded file pada Koa nodejs menggunakan Koa Body Cleaner.
Oya! sedikit cerita tentang kesibukan harian beberapa bulan ini agak sedikit ribet, dikarenakan saya yang ribet dengan urusan perpindahan dari perusahaan sebelumnya ketempat saya sekarang bekerja.
Sejak saat itu saya menghabiskan waktu untuk beradaptasi, baik dengan lingkungan baru dan juga enviroment dan project-project baru dengan framework yang baru.
Yup! itulah yang mendasari saya menulis artikel ini, karena berdasarkan pengalaman nyata ditempat saya bekerja.
Ok! gak perlu panjang lebar lah ya, mari kita masuk ke bahasan pokok.
Koa.js
Koa adalah salah satu framework web Node.js minimal dan fleksibel yang menyediakan serangkaian fitur yang kuat untuk aplikasi web dan seluler.
Ini adalah framework opensource yang dikembangkan dan dikelola oleh pembuat Express.js, framework web node paling populer.
Untuk kalian yang baru kenalan sama Koa.js , lebih jelasnya teman-teman bisa cek informasi tentang Koa.js di beberapa page berikut :
Nah! karena kali ini pembahasan akan lebih mengerucut pada Koa Body Cleaner jadi pengenalan perihal Koa nya di singkat saja ya.
Koa Body Cleaner
Adalah salah satu middleware yang bisa Anda gunakan untuk menghapus file temporary yang di upload ke server tiap kali ada request upload file.
Setiap kali kita upload file ke server, file akan di tampung terlebih dahulu ke temporary folder sebelum di move / dipindahkan ke directory yang sudah kita tentukan.
File temporary tersebut akan tetap ada di dalam folder temporary jika kita tidak menghapusnya. Nah! package koa-body-clean ini bisa digunakan dengan mudah tanpa pusing-pusing mikirin bagai mana codenya.

Sesuai dengan perintah instalasinya di github koa-body-clean berikut beberapa step dan persyaratan untuk kalian yang ingin menggunakan Koa Body Clean ini.
Requirement :
- Koa middleware untuk auto cleanup file yang dibuat dengan :
- koa-body
- koa-better-body
- koa-multer
- atau multipart middleware yang terdapat
ctx.request.files
,ctx.request.body.files
atauctx.req.files
- Node >= 7.6.x
- koa >= 2
Jika persyaratan diatas sudah terpenuhi, tinggal jalankan saja perintah berikut pada project yang sudah terinstall koa.js :
npm install koa-body-clean
Lalu tambahkan pada Usage / required :
const bodyClean = require('koa-body-clean')
Ok! saya akan contohkan sedikit code simple untuk melihat / check pergerakan file temporary dari menggunakan koa-body-clean dan tanpa package tersebut.
const Koa = require('koa');
const koaRouter = require("koa-router");
const koaBody = require("koa-body");
const bodyClean = require('koa-body-clean')
const fs = require("fs");
const path = require('path');
const app = new Koa();
const router = new koaRouter();
router.post("/upload", async ctx => {
const body = ctx.request.body;
var path_temp = ctx.request.files.file.path;
console.log('temp file '+"\n");
console.log(path_temp);
console.log("\n");
let { file } = ctx.request.files;
const reader = fs.createReadStream(file.path);
let filePath = 'upload/' + `${file.name}`;
const upStream = fs.createWriteStream(filePath);
reader.pipe(upStream);
ctx.body = 'ok';
});
// We enable multipart body parsing
app.use(koaBody({ multipart: true}));
//
//koa clean
app.use(bodyClean());
app.use(router.routes());
app.use(router.allowedMethods());
app.listen(3000);
Saya ingin upload file ke direktori upload/ dengan menggunakan koa-body untuk membaca inputan body dari parameter yang dikirim user.
Dari code tersebut saya melakukan log untuk mendapatkan path dimana letak temporary file berada, jika teman-teman jalankan perintah diatas maka akan muncul tampilan seperti berikut.

Pada log tersebut string menunjukan tempat dimana log file temporary berada, tentunya path tersebut akan berbeda-beda pada masing-masing komputer.
jika teman-teman tidak menggunakan koa body clean, file pada path tersebut akan tetap ada walaupun proses upload / request sudah selesai.
Gimana? Semoga informasi ini berguna bagi teman-teman, Keep Share.