cyberjon-express-formidable v1.0.1
cyberjon-express-formidable 
An Express middleware of Formidable that just works.
What are Express, Formidable, and this?
Express is a fast, unopinionated, minimalist web framework for Node.js.
Formidable is a Node.js module
for parsing form data, including multipart/form-data file upload.
So, cyberjon-express-formidable is something like a bridge between them,
specifically an Express middleware implementation of Formidable.
It aims to just work.
Install
npm install cyberjon-express-formidableHow to use
const express = require('express');
const formidableMiddleware = require('cyberjon-express-formidable');
var app = express();
app.use(formidableMiddleware());
app.post('/upload', (req, res) => {
req.fields; // contains non-file fields
req.files; // contains files
});And that's it.
cyberjon-express-formidable can basically parse form types Formidable can handle,
including application/x-www-form-urlencoded, application/json, and
multipart/form-data.
Option
app.use(formidableMiddleware(opts));opts are options which can be set to form in Formidable. For example:
app.use(formidableMiddleware({
encoding: 'utf-8',
uploadDir: '/my/dir',
multiples: true, // req.files to be arrays of files
});For the detail, please refer to the Formidable API.
Events
app.use(formidableMiddleware(opts, events));events is an array of json with two field:
| Field | Description |
|---|---|
event | The event emitted by the form of formidable. A complete list of all the possible events, please refer to the Formidable Events |
action | The callback to execute. The signature is function (req, res, next, ...formidable_parameters) |
For example:
const events = [
{
event: 'fileBegin',
action: function (req, res, next, name, file) { /* your callback */ }
},
{
event: 'field',
action: function (req, res, next, name, value) { /* your callback */ }
}
];Error event
Unless an error event are provided by the events array parameter, it will handle by the standard next(error).
Contribute
git clone https://github.com/cyberjon/cyberjon-express-formidable.git
cd cyberjon-express-formidable
npm installTo lint and test:
npm test