与 Express.js
Multer with Express.js
我在使用 Multer
和 express.js
时遇到一些问题。所以这很好用:
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});
});
})
只是想知道如果我想将 routes.js
与 server.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
属性。如果你是用Postman来测试的话,应该是这样的:
我在使用 Multer
和 express.js
时遇到一些问题。所以这很好用:
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});
});
})
只是想知道如果我想将 routes.js
与 server.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
属性。如果你是用Postman来测试的话,应该是这样的: