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

TypeScript中使用express-validator时接口无响应该如何解决?

问题核心原因
  • express-validator的校验规则方法需要主动调用后才会生成合法的中间件函数,你代码中body('userName').notEmpty仅引用了notEmpty函数本身,没有执行生成校验逻辑,导致请求卡在中间件层无法进入后续业务代码,所以接口没有返回响应。
修复后的代码
import express from "express";
import { body, validationResult } from "express-validator";

export const accountRouter = express.Router();

accountRouter.post( 
  "/signIn", 
  // 给notEmpty添加执行括号
  body('userName').notEmpty(), 
  body('password').notEmpty(), 
  async ( req: express.Request, res: express.Response)  =>  {
    const errors = validationResult(req);
    if (!errors.isEmpty()) return res.sendStatus(400);
    
    // 你的业务逻辑
    // ...doStuff();
})
其他必要配置检查
  • 确认你在项目入口注册路由之前,已经配置了express的json请求体解析中间件,否则express-validator无法读取application/json格式的请求体参数,也会导致校验不生效:
// 路由注册前添加
app.use(express.json())
  • 若需要自定义校验错误提示,可以给notEmpty方法传参,示例:body('userName').notEmpty({message: '用户名不能为空'})

内容的提问来源于stack exchange,提问作者Yoey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:21:02