如何使用 json-server 保存时间戳?

Posted

技术标签:

【中文标题】如何使用 json-server 保存时间戳?【英文标题】:How do I save a timestamp using json-server? 【发布时间】:2021-01-04 09:31:15 【问题描述】:

我一直在使用带有简单 db.json 的 json-server 来模拟我的 REST API。

但是,我现在需要在后端的每个 POST 上保存当前日期。

我希望 json-server 在每个 POST 上生成一个时间戳并将其保存在 db.json 中,因此每次我执行 GET 请求时,它都会以记录保存的日期进行响应。

例如从这里开始:


  "posts": [
    
      "id": 1,
      "title": "json-server",
      "author": "typicode"
    
  ],
  "comments": [
    
      "id": 1,
      "body": "some comment",
      "postId": 1
    
  ]

到这里:


  "posts": [
    
      "id": 1,
      "title": "json-server",
      "author": "typicode"
    
  ],
  "comments": [
    
      "id": 1,
      "body": "some comment",
      "postId": 1,
      "timeSaved": "2020-09-17T09:15:27+00:00"
    
  ]

【问题讨论】:

嗨,这可以通过@rnmkeshav/mock-api 包轻松实现。它允许您用 javascript 编写所有内容,并对请求和响应进行精细控制。如果您遇到任何问题,请在 package 的 github repo 上提出问题。 【参考方案1】:

您可以将json-server 作为一个模块与 Express 中间件结合使用:https://github.com/typicode/json-server#module。

他们有一个示例来保存 createdAt 以用于 POST 请求:

server.use((req, res, next) => 
  if (req.method === 'POST') 
    req.body.createdAt = Date.now()
  
  // Continue to JSON Server router
  next()
)

或者你可以使用我的API服务器(基于json-server):https://github.com/robinhuy/fake-rest-api-nodejs

【讨论】:

以上是关于如何使用 json-server 保存时间戳?的主要内容,如果未能解决你的问题,请参考以下文章

如何放置时间戳以使其在保存时不会重复

具有毫秒精度的时间戳:如何将它们保存在 MySQL 中

当用作模块时,如何让 json-server 延迟响应?

如何动态启动 json-server

如何使用 useForm 钩子获取输入值,然后使用 json-server 执行 POST?

如何在 json-server 上添加标头?