How to Upload File using formidable module in Node.js ?

27 Apr, 2020
Formidable module is used for parsing form data, especially file uploads. It is easy to use and integrate into your project for handling incoming form data and file uploads.
Installation of formidable module:
You can visit the link Install formidable module. You can install this package by using this command.npm install formidableAfter installing formidable module, you can check your yargs version in command prompt using the command.npm version formidableAfter that, you can just create a folder and add a file for example index.js, To run this file you need to run the following command.node index.js
You can visit the link Install formidable module. You can install this package by using this command.npm install formidable
npm install formidable
After installing formidable module, you can check your yargs version in command prompt using the command.npm version formidable
npm version formidable
After that, you can just create a folder and add a file for example index.js, To run this file you need to run the following command.node index.js
node index.js
Filename: index.js
const express = require('express');const fs = require('fs');const path = require('path')const formidable = require('formidable');   const app = express();   app.post('/api/upload', (req, res, next) => {        const form = new formidable.IncomingForm();    form.parse(req, function(err, fields, files){          var oldPath = files.profilePic.path;        var newPath = path.join(__dirname, 'uploads')                + '/'+files.profilePic.name        var rawData = fs.readFileSync(oldPath)              fs.writeFile(newPath, rawData, function(err){            if(err) console.log(err)            return res.send("Successfully uploaded")        })  })});   app.listen(3000, function(err){    if(err) console.log(err)    console.log('Server listening on Port 3000');});
Steps to run the program:
The project structure will look like this:NOTE: ‘uploads’ is the folder where your files will be uploaded.Make sure you have install express and formidable module using following commands:npm install formidable
npm install expressRun index.js file using below command:node index.jsNow open POSTMAN to run this API and send sample data as shown below:Here in body, we have passed send two fields, one is name of type=’Text’ and other is profilePic of type=’File’ as shown above.Now go to your uploads folder, your file is uploaded as shown below:
The project structure will look like this:NOTE: ‘uploads’ is the folder where your files will be uploaded.
Make sure you have install express and formidable module using following commands:npm install formidable
npm install express
npm install formidable
npm install express
Run index.js file using below command:node index.js
node index.js
Now open POSTMAN to run this API and send sample data as shown below:Here in body, we have passed send two fields, one is name of type=’Text’ and other is profilePic of type=’File’ as shown above.
Now go to your uploads folder, your file is uploaded as shown below:
So this is how you can use formidable module for uploading files and handling incoming form data easily and efficiently.
Node.js-Misc
Node.js
Web Technologies
Web technologies Questions
Write From Home
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Difference between promise and async await in Node.js
Mongoose | findByIdAndUpdate() Function
Installation of Node.js on Windows
JWT Authentication with Node.js
How to use an ES6 import in Node.js?
Top 10 Projects For Beginners To Practice HTML and CSS Skills
Difference between var, let and const keywords in JavaScript
How to insert spaces/tabs in text using HTML/CSS?
How to fetch data from an API in ReactJS ?
Differences between Functional Components and Class Components in React