UNPKG

katana

Version:

Easy to use, modular web framework for any Node.js samurai.

34 lines (27 loc) 854 B
var Formidable = require('formidable'); var conf = App.get('multiparser'); App.use(function(request, response, next) { if (['GET', 'HEAD', 'OPTIONS', 'TRACE'].indexOf(request.method) !== -1) { return next(); } var form = request.form = new Formidable.IncomingForm(conf); form.on('field', function(name, value) { onData(name, value, request.data); }).on('file', function(name, file) { onData(name, file, request.files); }).on('error', function(error) { conf.waitEnd ? next(error) : App.log('error', error); }).on('end', function() { conf.waitEnd && next(); }).parse(request); !conf.waitEnd && next(); }); function onData(name, value, data) { if (Array.isArray(data[name])) { data[name].push(value); } else if (data[name]) { data[name] = [data[name], value]; } else { data[name] = value; } }