UNPKG

keystone

Version:

Web Application Framework and Admin GUI / Content Management System built on Express.js and Mongoose

42 lines (38 loc) 939 B
var fs = require('fs'); var multer = require('multer'); var os = require('os'); function handleUploadedFiles (req, res, next) { if (!req.files || !Array.isArray(req.files)) return next(); var originalFiles = req.files; var files = {}; originalFiles.forEach(function (i) { if (i.fieldname in files) { var tmp = files[i.fieldname]; files[i.fieldname] = [tmp]; } if (Array.isArray(files[i.fieldname])) { files[i.fieldname].push(i); } else { files[i.fieldname] = i; } }); req.files = files; var cleanup = function () { originalFiles.forEach(function (i) { if (i.path) { fs.unlink(i.path, function () {}); } }); }; res.on('close', cleanup); res.on('finish', cleanup); next(); }; exports.handleUploadedFiles = handleUploadedFiles; exports.configure = function (app, options) { var upload = multer(options || { dest: os.tmpdir(), }); app.use(upload.any()); app.use(handleUploadedFiles); };