问题描述: 在Angular应用中,使用Node作为后端API,使用Multer进行文件上传时,req.file未定义。
解决方法:
single
方法指定上传文件的字段名。例如,如果上传表单中的文件字段名为file
,则配置应如下所示:const multer = require('multer');
// 配置Multer
const upload = multer({
storage: multer.diskStorage({}),
fileFilter: (req, file, cb) => {
cb(null, true);
}
}).single('file');
app.post('/upload', (req, res) => {
upload(req, res, (err) => {
if (err) {
// 处理错误
console.error(err);
return res.status(500).send(err.message);
}
// 在这里可以访问req.file
if (!req.file) {
return res.status(400).send('No file uploaded.');
}
// 处理上传的文件
// ...
// 返回成功响应
res.status(200).send('File uploaded successfully.');
});
});
注意事项:
single
方法来指定上传文件的字段名。