We will learn how to upload Node js Express Image using Multer Example


Step 1: 

Create Node App 

mkdir my-app

cd my-app

npm init


Step 2: 

Install express and multer 

npm install express multer --save


Step 3: 

Create app.js file app.js

const express = require('express');
const multer = require('multer');
const path = require('path');
const app = express();
  
const storage = multer.diskStorage({
    destination: function(req, file, cb) {
        cb(null, 'uploads/');
    },
  
    filename: function(req, file, cb) {
        cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));
    }
});
  
var upload = multer({ storage: storage })
  
app.get('/', (req, res) => {
  res.sendFile(__dirname + '/index.html');
});
  
app.post('/', upload.single('file-to-upload'), (req, res) => {
  res.redirect('/');
});
  
app.listen(3000);


Step 4: 

Create index.html file index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Node js Express File Upload using Multer Example - rathorji.in</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
  </head>
  <body>
    <h1>Node js Express File Upload using Multer Example - rathorji.in</h1>
    <form action="/" enctype="multipart/form-data" method="post">
      <input type="file" name="file-to-upload">
      <input type="submit" value="Upload">
    </form>  
  </body>
</html>


now you can simply run by following command:

npm start


open following url:

localhost:3000

I hope this example will help you