NodeJS 使用Joi验证器将当前日期指定为默认值

ibps3vxo  于 2023-02-21  发布在  Node.js
关注(0)|答案(1)|浏览(246)

我正在使用Joi validator和Node js,并尝试使用Joi将当前日期分配给一个属性,我已经尝试了这两种方法,但没有一种对我有效

createdAt: Joi.date().default(new Date(Date.now()))

以及

createdAt: Joi.date().default(Joi.date().timestamp())

这件事对伊藤诚来说可行吗?如果可行的话,你能帮我想想办法吗?
先谢谢你了

hgc7kmma

hgc7kmma1#

Joi.date()需要字符串日期格式
Joi.timestamp()需要几毫秒
演示

const Joi = require('joi')

const schema = Joi.object({
    createdTimeStamp: Joi.date().timestamp(),
    createdDate: Joi.date()
})

const now = Date.now()
const nowDate = new Date(now)
const result = schema.validate(
    { 
        createdTimeStamp: now,
        createdDate: nowDate
    })

console.log('Joi.date().timestamp(): ' + now)
console.log('Joi.date(): ' + nowDate)
console.log('result: ' + JSON.stringify(result, null, 4))

结果

$ node  test.js
Joi.date().timestamp(): 1676893420897
Joi.date(): Mon Feb 20 2023 06:43:40 GMT-0500 (Eastern Standard Time)
result: {
    "value": {
        "createdTimeStamp": "2023-02-20T11:43:40.897Z",
        "createdDate": "2023-02-20T11:43:40.897Z"
    }
}

相关问题