如何解决使用 Express Router req.file undefined 在 Nodejs 中的 Multer
我正在尝试使用 multer 和 Express Router 实现文件上传功能。我使用 router.use 定义了一个端点 /batch_upload
,如下所示
api.js
router.use(
"/batch_upload",upload.single("emp_csv_data"),userController.processBatchUserInformation
);
在userController.js
exports.processBatchUserInformation = async (req,res) => {
console.log(req.file);
if (req.method == "POST") {
try {
console.log("Upload route reached - POST");
console.log(req.file);
console.log(req.file.path);
return res.send(req.file);
} catch (err) {
console.log("Error Occurred");
return res.send(err);
}
}
};
在 FileUploader.js 中,我定义了上传变量和 multer 选项,如下所示
var multer = require("multer");
var storage = multer.diskStorage({
destination: (req,file,cb) => {
cb(null,"uploads");
},filename: (req,cb) => {
return cb(null,file.fieldname + "-" + Date.now());
}
});
exports.upload = multer({ storage: storage });
最后,在 app.js 中我使用了路由
app.use('/user',user_routes)
但是当我向 http://localhost:5000/user/batch_upload
发送文件时,我收到了 req.file
的未定义响应
讽刺的是,我在示例测试项目中有确切的实现,一切似乎都很好。我不明白我错过了什么。如果您发现有什么不对劲的地方,请帮我解决。
解决方法
因此,文件未上传的原因是我没有在标题中添加 Content-type:multipart/form-data。谢谢你们试图提供帮助。我很感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。