【问题标题】:Upload a image with other key-value parameters to postman in NodeJS/Express在 NodeJS/Express 中将带有其他键值参数的图像上传到 postman
【发布时间】:2021-03-03 13:29:04
【问题描述】:

我是 NodeJS 的新手,我尝试使用this 通过邮递员发布图片。 但我想不通我到底缺什么?

邮递员参数:

NodeJS 代码

现在要在我的 NodeJS 中访问这些值,我目前正在这样做:

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");
})

如何访问图片和键值?

还查看了 express-fileupload node-module 为我做这项工作。

  • input name=foo type=file创建了一个简单的ejs
  • 试图在 server.js 文件中以console.log(req.files) 访问它。

没用。

我错过了什么吗?请帮忙。谢谢。

【问题讨论】:

  • 您无法仅使用 nodejs 中的此代码解析请求中的文件数据。有可用的软件包,其中最简单和流行的是 multer,npmjs.com/package/multer

标签: node.js express file-upload postman


【解决方案1】:

multer 是在 node.js 中上传文件的最佳选择

为 multer 创建单独的文件夹,例如 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;

在您的路线中导入 multerhelper 文件

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");
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-19
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 2020-04-29
    • 1970-01-01
    • 2016-09-25
    相关资源
    最近更新 更多