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

Express-validator 7.0.1 isDate()始终返回false问题求助

express-validator v7.0.1 中 isDate 验证失败问题

问题描述

以下代码在express-validator 6.14.2版本中可正常运行:

const checkDate = check("date").isDate();

// simplified but you get the idea, 
app.post(
    "/path1",
    [checkDate],
    async (req, res) => {
        ... process the req ...
    }
); 

测试时req.body为{ date: "2021-02-12", ... },该日期检查在v6.14.2中可通过,但升级到v7.0.1后开始失败。注释掉checkDate后测试恢复正常,查看更新日志未找到相关说明,请问原因是什么?

原因及解决办法

  • 核心原因是express-validator v7.x升级了底层依赖的validator.js版本,isDate()方法的默认验证规则发生了变更:默认启用了严格模式,不再自动识别YYYY-MM-DD这类字符串格式的日期。
  • 可以通过两种方式解决:
    1. 显式指定日期格式:
      const checkDate = check("date").isDate({ format: 'YYYY-MM-DD' });
      
    2. 关闭严格模式(允许解析更多常见日期格式):
      const checkDate = check("date").isDate({ strictMode: false });
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:19:53