如何验证发送的时间戳是否采用 UTC 格式(以猫鼬/Hapijs 为单位)

How to verify that the timestamp send is in UTC in mongoose/Hapijs?

本文关键字:格式 UTC Hapijs 为单位 是否 验证 何验证 时间戳      更新时间:2023-09-26

我正在node中构建一个应用程序.js使用Mongoose在Mongodb中使用happy和数据库。我有以下消息架构:

var schema = {
    from : {
        type : Schema.ObjectId,
        ref : 'User'
    },
    content : {
        type : String,
        required : true
    },
    group : {
        type : Schema.ObjectId,
        ref : 'Group'
    },
    created : {
        type : Number,
        default : Date.now()
    }
};

我希望架构中的created字段是时间戳,并且始终采用 UTC。为此,我的客户端总是将其当前时间戳转换为其 UTC 时间戳,然后发送到服务器。但是,我在服务器上找不到一种可能的方式来验证提供的时间戳是否已转换为 UTC。有什么方法可以在快乐/猫鼬中强加这种验证吗?

提前谢谢。

编辑

  1. 更改了要Number created字段的类型,因为我想存储timestamp而不是日期字符串。

happy 允许您在每条路线上拥有一个validate属性。在后台,它使用 Joi 来验证此属性中提供给有效负载、参数、查询字符串和标头的架构: 路由配置

使用它,您可以将created字段验证为特定的日期格式:date.format()

例如,这将验证其是否符合ISO 8601格式:

    validate: {
        payload: {
            created: Joi.date().iso();
        }
    }