获取 req.getValidationResult 不是带有 expess 验证器的函数



我使用最新的表达式验证器,即使每个示例都有这种语法,我也一直在req.getValidationResult is not a function

在我的路线中,我有

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中没有任何与表达式验证器相关的内容。在我的package.json中,我在依赖项中"express-validator": "*",

如果我这样做

let errors = validationResult(req);
if (!errors.isEmpty()) {
console.log('errors ', errors);
}

它有效。

我不知道为什么我一直req.getValidationResult is not a function.我不知道发生了什么。请指教。谢谢

这里的表达式验证器维护者。

从 express-validator v4.0.0 开始,从req对象访问的所有方法都被视为遗留方法,并且很快就会被弃用。
这意味着任何方法,如req.checkBodyreq.validationResultreq.sanitize等,都不应用于新的应用程序。

最好使用来自表达式验证程序的任何其他 API(但旧版(的方法。
validationResult(req)是访问验证错误的正确方法,它返回与req.getValidationResult()完全相同的对象,但以同步方式返回。

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

最新更新