UNPKG

koa-formidable

Version:
30 lines (25 loc) 691 B
'use strict' var formidable = require('formidable') var middleware = module.exports = function(opts) { return function *formidable(next) { var res = yield middleware.parse(opts, this) this.request.body = res.fields this.request.files = res.files yield next } } middleware.parse = function(opts, ctx) { if (!ctx) { ctx = opts opts = {} } return function(done) { var form = (typeof opts === 'object' && opts.constructor.name === 'IncomingForm') ? opts : new formidable.IncomingForm(opts) form.parse(ctx.req, function(err, fields, files) { if (err) return done(err) done(null, { fields: fields, files: files }) }) } }