Javascript expressValidator不是函数,即使它指定中间件必须是函数
//我在restapi中使用express验证作为中间件,但错误为 //app.use(expressValidator()); ^Javascript expressValidator不是函数,即使它指定中间件必须是函数,javascript,node.js,express,Javascript,Node.js,Express,//我在restapi中使用express验证作为中间件,但错误为 //app.use(expressValidator()); ^ TypeError:expressValidator不是函数您需要包中的检查和验证结果对象 传递一个check()调用数组作为post()调用的第二个参数。每个check()调用都接受参数名作为参数。然后我们调用validationResult()来验证没有验证错误。如果有,告诉客户 //route.js > const {body} = require('
TypeError:expressValidator不是函数您需要包中的
检查
和验证结果
对象
传递一个check()
调用数组作为post()调用的第二个参数。每个check()调用都接受参数名作为参数。然后我们调用validationResult()
来验证没有验证错误。如果有,告诉客户
//route.js
> const {body} = require('express-validator');
var validate=(method) =>{
switch(method){
case 'userRegistered':{
return [
body('username','Username doesnot exists').exists(),
body('email','Invalid Email').exists().isEmail(),
body('name','Invalid Email').optional(),
body('password','password must be atleast 8 characters').exists().isLength({min:8,max:15}),
body('Image','please upload your Image').exists(),
]
}
}
}
//route Handler
> router.post('/register-user',uploads.single('Image'),validate('userRegistered'),async(req,res)=>{
console.log(req.file);
const errors = validationResult(req)
if(!errors.isEmpty){
res.status(422).json({errors:errors.array() });
}
await userRegistered(req.body,req.file.path,"client",res);
});
//app.js
> const expressValidator = require('express-validator');
const bodyParser = require('body-parser');
app.use(expressValidator());
这看起来就像你根本没有读过告诉你如何使用它。
const { check, validationResult } = require('express-validator');
app.post('/register-user', [
check('name').isLength({ min: 3 }),
check('email').isEmail(),
],async (req, res) => {
const errors = validationResult(req)
if (!errors.isEmpty()) {
return res.status(422).json({ errors: errors.array() })
}
//do something
})