Node.js 带有connect multiparty和body解析器的空req.files
我正试图在我的api上用Node.js 带有connect multiparty和body解析器的空req.files,node.js,express,multipartform-data,body-parser,Node.js,Express,Multipartform Data,Body Parser,我正试图在我的api上用连接多方上传一个文件,但我无法让它正常工作 下面是我的代码(一个示例,因为我的api有很多工作路径): 当我试图上传一个文件时,req.body和req.files都是空的{} 我知道Body Parser不再支持multipart/form data,所以我试图找到一种方法将其与另一个包一起使用,但迄今为止没有成功 我试过使用busboy,connect-busboy,multer,embible,express-embible,express-fileupload,但
连接多方
上传一个文件,但我无法让它正常工作
下面是我的代码(一个示例,因为我的api有很多工作路径):
当我试图上传一个文件时,req.body
和req.files
都是空的{}
我知道Body Parser
不再支持multipart/form data
,所以我试图找到一种方法将其与另一个包一起使用,但迄今为止没有成功
我试过使用busboy
,connect-busboy
,multer
,embible
,express-embible
,express-fileupload
,但每次请求文件
都是未定义的,所以我觉得我在connectmultiparty
方面取得了一些进展,因为req.files
是空的
我见过一些类似问题的话题,比如,或者,但不幸的是,这些都没有帮助我
在客户端中,我使用的是高级REST客户端
和邮递员
你知道我做错了什么吗?对于任何有这个问题的人,我发现删除Postman上值为“application/javascript”的内容类型标题对我来说都很有效。我只是一直没有注意到,而我尝试了与OP相同的不同包。将enctype=“multipart/form data”放在html上的标记表单中
var express = require('express');
var bodyParser = require('body-parser');
var multipart = require('connect-multiparty');
var app = express();
var multipartMiddleware = multipart({ uploadDir: './imagesPath' });
// Define middleware
app.use(bodyParser.urlencoded({ extended: true })); // Support encoded bodies
app.use(bodyParser.json()); // Support json encoded bodies
var router = express.Router(); // Get an instance of the express Router
router.post('/testFileUpload', multipartMiddleware, function(req, res) {
console.log(req.body, req.files);
// Some other code
});