【问题标题】:Validate both JS Date and Firestore Date with Joi使用 Joi 验证 JS 日期和 Firestore 日期
【发布时间】:2022-01-11 05:32:11
【问题描述】:

我目前正在发现 Joi 库,并且 - 在这个时候 - 这是一次很棒的体验。
但是,我面临一个我无法解决的小问题。需要帮助或建议!

考虑以下架构(有点):

const workSchema = Joi.object({ timeline_created: Joi.date().allow(null).required()) }

当我提交 JS 日期(或 null 值)时,它工作得非常好。
但是,我正在使用 Firestore 将 JS Date 转换为这种对象:

timeline_created: Timestamp { _seconds: 1637258607, _nanoseconds: 349000000 }

因此,我无法验证我的架构(这不是 Joi 知道的日期)。
然后,我的问题是:如何编写我的架构(我希望它是严格/精确的)但同时验证 JS DateFirestore Date

谢谢

编辑:我取得了一些进展:

timeline_created: Joi.object().keys({_seconds: Joi.number(),_nanoseconds: Joi.number()}).required()

它验证了我的 Firestore 对象。
但是,我如何验证 timeline_creatednull 还是 JS 日期?谢谢。

【问题讨论】:

    标签: javascript validation joi


    【解决方案1】:

    这是有效的:

    Joi.alternatives([Joi.object().keys({ _seconds: Joi.number(), _nanoseconds: Joi.number() }), Joi.date(), null]).required()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-23
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多