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