Javascript multer中间件无法识别req的主体 const storage=multer.diskStorage({ 目的地:(请求、文件、cb)=>{ cb(空,“公共/图像”); }, 文件名:(请求、文件、cb)=>{ 控制台日志(请求正文);//{ 试一试{ 返回res.status(200.json)(请求主体); }捕捉(错误){ 控制台日志(err); } });
邮递员要求: 控制台输出:Javascript multer中间件无法识别req的主体 const storage=multer.diskStorage({ 目的地:(请求、文件、cb)=>{ cb(空,“公共/图像”); }, 文件名:(请求、文件、cb)=>{ 控制台日志(请求正文);//{ 试一试{ 返回res.status(200.json)(请求主体); }捕捉(错误){ 控制台日志(err); } });,javascript,node.js,file-upload,multer,Javascript,Node.js,File Upload,Multer,邮递员要求: 控制台输出: const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, "public/images"); }, filename: (req, file, cb) => { console.log(req.body); // <- This will output null object cb(null,
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, "public/images");
},
filename: (req, file, cb) => {
console.log(req.body); // <- This will output null object
cb(null, file.originalname);
},
});
const upload = multer({ storage });
app.post("/api/upload", upload.single("file"), (req, res) => {
try {
return res.status(200).json(req.body);
} catch (err) {
console.log(err);
}
});
>>>>>>>服务器从以下位置启动:
请注意,req.body可能尚未完全填充。这取决于
客户机向服务器传输字段和文件的顺序
因此,更改邮递员表单中的顺序,并将名称
放在文件
之前(您只需拖放该行)将解决此问题。效果很好,谢谢。但我遵循的是一个教程,这是做教程的人使用的顺序。这对他很有效。有什么不同的原因吗?好问题,不确定原因是什么,抱歉。
>>>>>>>>>>>>>SERVER STARTED<<<<<<<<<<<<<
(node:3741192) [MONGODB DRIVER] Warning: Top-level use of w, wtimeout, j, and fsync is deprecated. Use writeConcern instead.
(node:3741192) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
Connected to MongoDB
[Object: null prototype] {}
::1 - - [08/Jun/2021:12:11:21 +0000] "POST /api/upload HTTP/1.1" 200 23
filename: (req, file, cb) => {
console.log(req.body); // <- This will output null object
cb(null, file.originalname);
},