You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用express-validator时出现req.check is not function错误如何解决

报错原因

  • 你当前使用的express-validator为v6.0.0及以上的新版本,该版本已经完全废弃并移除了v5及更早版本提供的req.check、req.validationErrors等挂载在req对象上的校验API,改用声明式的验证链中间件架构,所以调用req.check会抛出不存在该函数的错误。

修复方案

提供两种可选修复方式,推荐优先使用第二种适配新版的方案:

方案1:降级到兼容旧API的版本

直接卸载当前版本,安装v5最后一个稳定版本即可,无需修改原有业务代码:

npm uninstall express-validator
npm install express-validator@5.3.1

安装完成后重启服务即可正常运行。

方案2:适配新版express-validator API(推荐)

新版API性能更好、维护更活跃,只需要修改校验逻辑的代码即可:

  1. 修改验证器页面代码:
const { body, validationResult } = require('express-validator');

exports.userSignupValidator = [
  // 密码非空校验
  body('password', 'Password is required').notEmpty(),
  // 密码长度、格式校验
  body('password')
    .isLength({ min: 6 })
    .withMessage('Password must contain at least 6 characters')
    .matches(/\d/)
    .withMessage('Password must contain a number'),
  // 统一错误处理中间件
  (req, res, next) => {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      const firstError = errors.array().map(error => error.msg)[0];
      return res.status(400).json({ error: firstError });
    }
    next();
  }
];
  1. 原有路由代码无需做任何修改,重启服务即可正常运行。

内容的提问来源于stack exchange,提问作者053_ Kartik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 03:57:03