getting req.getValidationResult不是expess validator的函数

getting req.getValidationResult不是expess validator的函数,validation,express,express-validator,Validation,Express,Express Validator,我使用快速验证器,并不断获得req.getValidationResult不是一个函数,即使每个示例都有这种语法 在我的路线上,我有 const express = require('express'); const router = express.Router(); const signup = require('../lib/signup.js'); const {body, validationResult } = require('express-validator/check');

我使用快速验证器,并不断获得
req.getValidationResult不是一个函数
,即使每个示例都有这种语法

在我的路线上,我有

const express = require('express');
const router = express.Router();
const signup = require('../lib/signup.js');
const {body, validationResult } = require('express-validator/check');
router.post('/submit',
[
  body('username').not().isEmpty().withMessage('please enter username'),
  body('password').not().isEmpty().withMessage('please enter password')
],
(req, res)=>{
  req.getValidationResult().then( result => {
    var errors = result.array(); 
    console.log('errors', errors);
  })
}
我的
app.js
中没有任何与express validator相关的内容。在我的
package.json
中,依赖项中有
“express validator”:“*”,

如果我这样做

  let errors = validationResult(req);
  if (!errors.isEmpty()) {
    console.log('errors ', errors);
  }
它起作用了


我不知道为什么我总是得到
req.getValidationResult不是一个函数
。我不知道发生了什么事。请给我一些建议。感谢这里的express validator维护人员

从express validator v4.0.0开始,不久将被弃用。
这意味着任何方法,如
req.checkBody
req.validationResult
req.sanitize
等,都不应用于新的应用程序

首选使用来自express validator的任何其他API的方法(传统API除外)。
是访问验证错误的正确方法,它返回与完全相同的对象,但以同步方式返回


*请注意,由于express validator最近发生了很大变化,我建议不要在2017年8月之前发布以下教程。

啊,谢谢,现在就有意义了。嘿,顺便问一下,是否有
validationResult(req)的异步版本?@slevin不用担心。不,没有异步版本--
req.getValidationResult()
需要异步,因为它等待所有验证器完成。另一方面,您只在验证器运行后调用
validationResult(req)
,因此它不需要异步。