【发布时间】:2021-03-29 19:03:35
【问题描述】:
问题是当我使用 multer 并在 Postman 中发送请求时,req.body 是一个空对象,而 req.file 是未定义的。我已经取消选中邮递员中的内容类型标头。
这是代码:
//Route
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '../uploads/');
},
filename: function (req, file, cb) {
cb(null, new Date().toISOString() + file.originalname);
}
});
const upload = multer({
storage,
limits: {fileSize: 1024 * 1024 * 10}
});
router.post('/test', upload.single('profilePicture'), authController.test);
//Controller
const test = (req, res) => {
console.log(req.body)
console.log(req.files)
res.json({body:req.body, files:req.files})
}
//app.js
app.use(express.json({extended: true, limit: '30mb'}));
app.use(express.urlencoded({extended: true, limit: '30mb'}))
app.use(cookieParser());
app.use('/api/auth', authRoutes);
app.use('/api/product', productRoutes);
app.use('/api/profile', profileRoutes);
编辑:原来,问题出在 Postman 上。我从一个 React 应用程序向 axios 提出了一个请求,一切正常。所以问题是,为什么它在 Postman 中不起作用?是软件中的一些错误还是我们应该更改的一些设置?
【问题讨论】:
-
如果用
var upload = multer({ dest: 'uploads/' })配置,结果一样吗? -
是的,同样的事情。问题出在 Postman 上。
标签: node.js express postman multipartform-data multer