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,应该是这样的: