Javascript 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('

//我在restapi中使用express验证作为中间件,但错误为 //app.use(expressValidator()); ^


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
})