Difference between multer, multiparty and connect-multiparty + Nodejs Difference between multer, multiparty and connect-multiparty + Nodejs express express

Difference between multer, multiparty and connect-multiparty + Nodejs


This question lists some of the options:

How could I upload files in ExpressJS 4.x

There are modules to parse multiform data directly, and express middleware built on top of these.

The top three modules by Github stars for parsing directly are node-formidable (3376), busboy (814), node-multiparty (557).

The top middleware is multer (built on busboy, 2515 stars). connect-multiparty has a note suggesting not to use it. connect-busboy has not been updated in four years.

Just based on this I'd suggest node-formidable, busboy, or multer if you want Express middleware.

Also note that multer has a MemoryStorage memory storage engine.


You can categorize the available file processing libraries into three categories: are they standalone or Express.js-specific, do they store intermediate files or use streams, and if the intermediate files are stored in temporary directory or in memory.

Standalone parsers like busboy can be used with or without Express.js. On the other hand Express.js middlewares augment the request object by adding req.files that you can conveniently access the files. Some implementations store intermediate files either in temp directory or in memory. Others let you access stream of uploaded file contents without busting the server's memory or hard disk.

Depending on your situation, ask these questions in order to determine which library suits you best.

  • do you need Express.js or not?
  • is saving intermediate files ok, or do you want to stream the files?
  • if saving intermediate files is alright, would you prefer them in memory or on hard disk?

Then pick one from the list of most used file upload processing libraries using this decision tree. The decision tree is from the article:

Choose between Formidable, Busboy, Multer and Multiparty for processing file uploads

Choose between Formidable, Busboy, Multer and Multiparty for processing file uploads