在 NodeJS/Express 中将带有其他键值参数的图像上传到 postman

Posted

技术标签:

【中文标题】在 NodeJS/Express 中将带有其他键值参数的图像上传到 postman【英文标题】:Upload a image with other key-value parameters to postman in NodeJS/Express 【发布时间】: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。 【参考方案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");
)

【讨论】:

以上是关于在 NodeJS/Express 中将带有其他键值参数的图像上传到 postman的主要内容,如果未能解决你的问题,请参考以下文章

在带有 express-session 的 NodeJS 中使用安全 cookie 时会话不持久

本地主机上带有 Angular 的 NodeJS + Express:被 CORS 预检阻止

使用 nodejs Express 渲染带有数据的 html

插入并放入nodeJs + express api时,带有Redux Saga的Axios不发送表单数据

使用异步和请求包(NodeJS / Express)进行多个 API 调用

Nodejs Express 用于 Web 应用程序 JWT,带有数据库或会话以验证用户身份