【问题标题】:Best Solution to work with Dates in React/Node/Mongo/Mongoose app在 React/Node/Mongo/Mongoose 应用程序中使用日期的最佳解决方案
【发布时间】:2019-05-08 17:56:25
【问题描述】:

我致力于以下技术堆栈。

  1. React - 用于前端
  2. Node/Express - 用于中间层
  3. MongoDB - 数据库
  4. Mongoose Driver - 将 express 应用连接到 Mongo DB

我使用一些日期选择器组件在 UI 中显示日期,用户可以更改这些日期。我想知道将日期发布到服务器并保存在数据库中的最佳方式是什么,同样,如何在 express 应用程序中使用 mongoose 查询具有日期格式的集合。

请提出一致且可能的最佳解决方案。

【问题讨论】:

    标签: node.js reactjs mongodb mongoose


    【解决方案1】:

    您应该在服务器端和客户端 js 上都使用 Date.now() (epoch 或 utc)。 Date fns 是一个很好的轻量级 js 库,可以在 node 和 react js 中运行。

    【讨论】:

    • 在这种情况下,我可以将 MongoDB 中的纪元时间格式保存为字符串吗?
    • @BadriNarayananSridharan 你在用猫鼬(mongoosejs.com)吗?如果是,只需将其保存为 dateNow: Date.now()
    【解决方案2】:

    您有很多约会选择。您可以通过JS Date object 保持超级精简并自己处理它们,或者使用momentJS 及其大量插件,或者使用date-fns 实现功能齐全且轻便。

    所有这些can be used on the client and on the servermomentJS / date-fns 有很多方便的方法可以为您节省大量时间和麻烦。 date-fns 也可以部分导入,因此如果您只需要几个方法,则不需要整个库。

    保存日期...推荐的方法是在持久化它们时为 mongoDB 使用默认的ISODate(无论如何这是 mongoDB 的默认值)。将它们保存为 strings 不是真正推荐的东西,但你可以而且只要你使用 版本 3.6+ 就可以了,因为他们添加了该版本及更高版本大量的日期/字符串操作函数,如果您必须在字符串和日期之间来回切换,这将为您节省大量时间,反之亦然。但是最好从一开始就处理日期。

    【讨论】:

      猜你喜欢
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多