How to Upload File using formidable module in Node.js ? – GeeksforGeeks
How to Upload File using formidable module in Node.js ?
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 formidable
- After installing formidable module, you can check your yargs version in command prompt using the command.
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
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.filepath;
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 express
- Run index.js file using below command:
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.
My Personal Notes
arrow_drop_up