在 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不发送表单数据