Multer与Express.js

我在用express.js使用Multer时遇到了一些问题。 所以这工作正常:

 const multer = require('multer'); let upload = multer({dest: 'uploads/'}); app.post('/upload', upload.single('image'), function (req, res, next) { console.log(req.file) // req.file is the `avatar` file // req.body will hold the text fields, if there were any }); 

但是当我尝试这样做, req.file is undefined

 const multer = require('multer'); let upload = multer({dest: 'uploads/'}); router.route('/', upload.single('image')) .post(function (req, res, next) { console.log(req.file); let memory = new Memory(); Object.assign(memory, req.body); memory.save(function (err) { if (err) { return res.send(err); } res.json({message: 'Memory Created', memory}); }); }) 

只是想知道如果我想从我的server.js分离我的routes.js正确的语法。

我也试过这个:

 const multer = require('multer'); let upload = multer({dest: 'uploads/'}); router.route('/') .post(upload.single('image'), function (req, res, next) { console.log(req.file); let memory = new Memory(); Object.assign(memory, req.body); memory.save(function (err) { if (err) { return res.send(err); } res.json({message: 'Memory Created', memory}); }); }) 

谢谢

尝试这个:

 router.post('/', upload.single('image'), function (req, res, next) { console.log(req.file); // Do something with the file }); 

确保post请求主体具有附加到image属性的文件。 如果你使用邮差testing,应该是这样的:

在这里输入图像说明