目前正在使用expressjs并使用express validator
进行验证,使用Multiparty
处理多部分表单。
情况是,当我想断言我的文本表格时express-validator
不能正常工作,因为我也使用multiparty
。
这是我的代码。
const express = require('express');
const app = express();
const expressValidator = require('express-validator');
const multiparty = require('multiparty');
app.use(expressValidator({
errorFormatter: function(param, msg, value) {
var namespace = param.split('.')
, root = namespace.shift()
, formParam = root;
while(namespace.length) {
formParam += '[' + namespace.shift() + ']';
}
return {
param : formParam,
msg : msg,
value : value
};
}
}));
app.post('/store', (req, res, next)=>{
const form = new multiparty.Form();
form.parse(req, (err, fields, files)=>{
req.assert('name','Store name is required.').notEmpty();
req.assert('description', 'Store Description is required.').notEmpty();
req.assert('category', 'Store Category is required.').notEmpty();
const errors = req.validationErrors();
if(errors){
console.log(errors);
}else{
// upload the file and save the data;
}
});
});
console.log(errors)结果总是返回一个包含3个对象的数组,总是这样,即使我在名称和描述字段中给出值,它仍然会返回它。
我已阅读类似问题Here,但仍无法解决我的问题。帮助我。
问题是如何将Express验证器和Multiparty一起使用 验证我的字段??
答案 0 :(得分:0)
您是否使用req.getValidationResult().
查看此案例中的验证结果,我在docs中看到:
req.getValidationResult().then(function(result){
})