JustCurious
JustCurious

Reputation: 362

Upload a image with other key-value parameters to postman in NodeJS/Express

I'm new to NodeJS and I tried this to post images through postman. But I can't figure out where am I lacking?

The postman parameters :

Here is the postman parameters

NodeJS Code

Now to access these values in my NodeJS, I'm currently doing this :

var express = require('express');
var bodyParser = require('body-parser');

const router = express.Router();
router.use(bodyParser.json());

router.post('/postData/uploadStory', function(req, res) {
    console.log(req.files);
    console.log(req.body);
     res.json("Hi");
})

How can I get access to the image and the key-value?

Also looked at express-fileupload node-module for doing this work for me.

Didn't work.

Am I missing something? Please help. Thanks.

Upvotes: 1

Views: 1798

Answers (1)

Aryan
Aryan

Reputation: 3636

multer is best option to upload file in node.js

create separate folder for multer like multerHelper.js

const multer = require('multer');
let fs = require('fs-extra');

let storage = multer.diskStorage({
destination: function (req, file, cb) {
    fs.mkdirsSync(__dirname + '/uploads/images'); // fs.mkdirsSync will create folders if it does not exist
    cb(null, __dirname + '/uploads/images');
},
filename: function (req, file, cb) {
   console.log(file);

    cb(null, Date.now() + '-' + file.originalname);
 }
})

let upload = multer({ storage: storage });

let createUserImage = upload.single('photo');

let multerHelper = {
    createUserImage,
}

module.exports = multerHelper;

In your routes import multerhelper file

const multerHelper = require("../helpers/multer_helper");

router.post('/upload/:userid',multerHelper, function(req, res) {
    console.log(req.files);
    console.log(req.body);
     res.json("Hi");
})

Upvotes: 2

Related Questions