node.js - 使用 MomentJS 作为 MongoDB 文档中的默认日期

标签 node.js mongodb momentjs

我正在尝试使用 MomentJS 获取非本地化的 UTC 时间并将其设置为在 Mongo 中创建的新文档的默认时间。

var SubFavoriteSchema = new Schema({
    user : { type: String, ref: 'Account'},
    date : {type: Date, default: moment.utc()}
});

问题是,moment.utc() 返回 Node 服务器启动的日期。因此,如果我在 1 月 1 日启动服务器,所有文档都会获得 1 月 1 日的 UTC 时间,即使文档是在 1 月 10 日创建的。

知道为什么它不断获取服务器的启动时间而不是当前时间吗?

最佳答案

问题是您在创建架构时调用 moment.utc() 函数(一次),因此在创建新文档时会使用相同的结果值。

但是,您不需要为此使用 momentdefault: Date.now 将执行您想要的操作,因为该函数返回当前 UTC 时间。请注意,您不会调用 now 函数,而只需传递函数本身。这是关键的区别。

关于node.js - 使用 MomentJS 作为 MongoDB 文档中的默认日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41668365/

相关文章:

node.js - Dust.js 在同一页面上多次使用相同的部分

javascript - 在 mongo 中查找上周创建的对象

java - Spring批处理中只有一半的MongoDB数据库正在处理

node.js - 没有 'new' 就不能调用类构造函数

node.js - Stripe 抛出无效整数错误

javascript - CSV 中的 JSON 到 CSV

jquery - TypeError : $. fn.dataTable.moment 不是函数

javascript - 如何在nestjs应用程序中使用时刻

javascript - 如何使用 javascript 以特定格式显示日期月份和年份并使用react?

node.js - 在 Ubuntu 上同时运行 PhantomJS 和 node.js