我在上传图片之前尝试验证我的表单,但我的中间件上出现空字符串
const upload = multer({
storage: storage
});
router.post('/upload', formsValidation, upload.fields([{
name: 'images',
maxCount: 20
}, {
name: 'imageMain',
maxCount: 1
}]), function(req, res, next) {
code...
});
继承我的中间件:
function formsValidation (req, res, next) {
console.log(req.body) //getting empty array here
return next();
}
我知道我可以使用来自multer的fileFilter,但有时我没有任何图片只上传字符串来存储和验证,我试图将req.body从multipart / form-data解析为string然后验证和使用next()但我得到一个范围错误,任何想法我怎么能解决这个问题?
答案 0 :(得分:0)
这是来自Multer的docs:
请注意,req.body可能尚未完全填充。这取决于 根据客户端将字段和文件传输到服务器的顺序。
这意味着你必须在multer midlleware之后调用formsValidation
,以确保所有发布的数据都已完全填充
router.post('/upload', upload.fields([{
name: 'images',
maxCount: 20
}, {
name: 'imageMain',
maxCount: 1
}]), formsValidation, function(req, res, next) {
code...
});