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

如何使用Joi Validator为字段设置当前日期默认值?

解决方案:Joi设置当前日期为默认值
  • 你之前的写法问题在于:

    1. 第一种写法Joi.date().default(new Date(Date.now()))会在定义Schema时就生成一个固定的日期,而不是每次验证请求时的当前时间。
    2. 第二种写法Joi.date().default(Joi.date().timestamp())是错误的,因为default接受的是静态值或者返回值的函数,而不是Joi对象。
  • 正确的实现方式是给default传递一个返回当前日期的函数,这样每次执行验证时都会调用该函数生成最新的时间:

createdAt: Joi.date().default(() => new Date())

或者用时间戳形式简化:

createdAt: Joi.date().default(() => Date.now(), '当前时间戳')

这样每次验证时,只要createdAt字段不存在,就会自动填充为验证时刻的当前日期/时间戳。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:10:22