javascript - 如何验证 mongoose/Hapijs 中发送的时间戳是否为 UTC?

标签 javascript node.js mongodb mongoose hapi.js

我正在使用 Hapi 在 node.js 中构建应用程序,并使用 Mongoose 在 Mongodb 中构建数据库。我有以下消息架构:

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。有什么方法可以在 Hapi/Mongoose 中强制执行该验证吗?

提前致谢。

编辑:

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

最佳答案

Hapi 允许您在每个路由上拥有一个 validate 属性。在幕后,它使用 Joi 来验证此属性中提供的模式到有效负载、参数、查询字符串和 header :Route Configuration

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

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

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

关于javascript - 如何验证 mongoose/Hapijs 中发送的时间戳是否为 UTC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30826391/

相关文章:

javascript - 当选择父选项 Js、Jquery 时,如何自动选择子选项

javascript - 更改单击数据绑定(bind)时显示的纸张选项卡 - Polymer

javascript - 使用 attr() 获取最接近的()

python - 使用 PyMongo 更新集合中字典列表中的字典值

java - 从 mongodb 获取除一两个之外的一些属性

javascript - 将 ajax 值传递到 Laravel Controller

javascript - Mongodb - 按 id 和嵌入数组值搜索

javascript - Node js表达路线/用户?限制= 20&偏移= 0

javascript - Azure 部署错误 errno 47

linux - 启动数据库 : mongod failed