validation - 获取 req.getValidationResult 不是带有 expes 验证器的函数

标签 validation express express-validator

我使用latest express-validator 和我不断收到 req.getValidationResult is not a function 即使每个示例都有此语法。

在我的 route ,我有

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维护者。

从express-validator v4.0.0开始,all methods accessible from the req object are considered legacy并将很快被弃用。
这意味着 req.checkBodyreq.validationResultreq.sanitize 等任何方法都不应用于新应用程序。

首选使用 Express-validator 的任何其他 API(但旧版)中的方法。
validationResult(req)是访问验证错误的正确方法,并且它返回与 req.getValidationResult() 完全相同的对象。 ,但是以同步方式。

* 请注意,由于express-validator 最近发生了很大变化,我建议反对遵循 2017 年 8 月之前发布的教程。

关于validation - 获取 req.getValidationResult 不是带有 expes 验证器的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50430625/

相关文章:

ajax - 使用AJAX的g验证码响应

javascript - 当表单设置为 enctype ='multipart/form-data' 时,快速验证器给出未定义的值

javascript - Express-validator:如果其他字段值为 true,则使字段可选

node.js - 数组作为参数传递给express post方法

java - 不断要求用户输入,直到整数介于两个数字之间

ios - iOS 中的电子邮件验证问题?

javascript - Jquery 验证插件名称与 Zend_Form 冲突

javascript - 如何迭代创建记录集合并一次呈现所有记录?

node.js - SequelizeJS 中的关系问题

javascript - 无法从React上传图像以使用Multer表达API