数据验证停止工作,我使用express-validator和multer。express-validator
我验证用户输入的字段,multer
上传和验证图像。阅读文档后,我看到了Multer добавляет объект body и объект file (или files) внутрь объекта request. Объект body содержит значения текстовых полей формы, объект file (files) содержит файл или файлы, загружаемые через форму.
. 现在的问题是在对象内添加body对象时如何检查express-validator
用户输入的字段?multer
request
我这样做:
import { check, validationResult } from 'express-validator/check';
const validatorSignup = [
check('user_name').exists().isLength({ min: 4, max: 20 }),
....
];
router.post('/signup', (req, res) => {
try {
upload(req, res, validatorSignup, (err) => {
console.log(req.body)
const errors = validationResult(req.body);
if (!errors.isEmpty()) {
return res.status(422).json({
err: errors.array()
});
}
....
} catch (err) {
return res.status(500).json({
err: err
});
}
});
在validationResult
I passreq.body
中,一切正常,但如果一个或多个字段留空,express-validator
它不会对此做出反应。
我也尝试转移到upload
数组本身validatorSignup
,但出现错误
onFinished(req, function () { next(err) })
^
TypeError: next is not a function
multer
必须在字段验证之前进行,因为 是他解码multipart/form-data
数据。所以: