Difference between multer, multiparty and connect-multiparty + Nodejs
express, multer, multipartform-data, node.js
Solution
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
Problem
Am new to Node world. UseCase : Was having a simple scenario of uploading XLS files on Angular front, process them on Node, make some manipulations and then save JSON on to Mongo DB. After receiving files from Angular, i was searching what is the best way to parse / process a file on Node and then came across articles on these famous node modules - `multer`, `multiparty` and `connect-multiparty`. Every article explains how to use corresponding module and couldn't find any one telling which one to be used when. I found that `multer` is mainly used when you are trying to save a file on Disk Storage and that doesn't suffice my use case. So should i ignore `multer` or actually use it ? When should i actually use `multiparty` and `connect-multiparty` ?