code: function multipart (req, options) {
    const result = {}
    return new Promise((resolve, reject) => {
      var form = new Busboy({ headers: req.headers })
      form.on('file', function(fieldname, file, filename, encoding, mimetype) {
        const value = result[fieldname]
        const duplex = new stream.Readable()
        duplex.filename = filename
        duplex.encoding = encoding
        duplex.mimetype = mimetype
        duplex._read = () => {}
        result[fieldname] =  value
          ? [].concat(value, duplex)
          : duplex
        file.on('data', data => duplex.push(data))
        file.on('end', () => duplex.push(null))
      });
      form.on('field', function(fieldname, val, fieldnameTruncated, valTruncated, encoding, mimetype) {
        const value = result[fieldname]
        result[fieldname] = value
          ? [].concat(value, val)
          : val
      });
      form.on('finish', () => resolve(result))
      req.pipe(form)
    })
  }
docs: Parse multipart/form-data requests.
  
  @param {HttpIncomingMessage} req
  @param {Object} options
  @return {Promise}
  @api private