JSON-服务器未按 ID 返回单个子元素

JSON-Server not returning single child element by ID

我正在尝试让 Json-Server (v 0.12.1) 在不需要中间件或将其用作组件的情况下工作 - 如果我要采用手动编码所有端点的时间。我被简单的路由配置所吸引,我相信我应该能够使用它而不需要任何东西,除了 routes.jsondb.json(让我删除很多样板表达的东西)。

我的db.json:

  "users": [
    {
      "userId": 1,
      "favoriteColor": "red"
    },
    {
      "userId": 2,
      "favoriteColor": "blue"
    },
    {
      "userId": 3,
      "favoriteColor": "green"
    }
  ]

我的routes.json:

{
    "/api/users": "/users",
    "/api/users/:userId": "/users/:userId"
}

我希望能够 GET 调用:http://localhost:3000/api/users/2 和 get

{
  "userId": 2,
  "favoriteColor": "blue"
}

在 return 中。但是,我总是得到 {}.

尝试使用来自 SO 的一些建议来改变数据结构(我无法控制)或使用过滤器(return是一个数组,而不是一个对象)是行不通的对我来说。

有谁知道为什么这条看似简单的路线不起作用?我相信我正在关注 custom route guidelines。我用 json-server --watch ./api/db.json --routes ./api/routes.json 启动服务器,并按我的预期点击 http://localhost:3000/api/users return,所以我知道 routes.json 文件和 db.json 文件都是领取成功

谢谢!

我必须使用以下命令启动服务器: json-server --watch db.json --routes routes.json

db.json

{
  "users": [
    {
      "id": 1,
      "first_name": "Sebastian",
      "last_name": "Eschweiler",
      "email": "sebastian@codingthesmartway.com"
    },
    {
      "id": 2,
      "first_name": "Steve",
      "last_name": "Palmer",
      "email": "steve@codingthesmartway.com"
    },
    {
      "id": 3,
      "first_name": "Ann",
      "last_name": "Smith",
      "email": "ann@codingthesmartway.com"
    }
  ]
}

routes.json

{
    "/api/users": "/users",
    "/api/users/:id": "/users/:id"
}