npm 使用json-server时获得404

f1tvaqid  于 2023-01-17  发布在  其他
关注(0)|答案(1)|浏览(255)

我正在学习使用json-server的npm包。
我使用的是最新的json-server版本0.17.0。
我希望从URL“http://localhost:3001/getFolderByFolder/14”获取此数据。其中14应与文件夹ID匹配。

{
  "folder_id": 14,
  "abstracts": {
    "33": {
      "abstract_name": "abstractt1",
    },
    "34": {
      "abstract_name": "abstract2",
    },
    "35": {
      "abstract_name": "abstract3",
    }
  },
  "folder_name": "folder2",
  "number_of_items": 2,
  "user_id": 6
}

我创建了db.json。我在里面写了这个。

{
  "folders": {
    "folder_id": 14,
    "abstracts": {
      "33": {
        "abstract_name": "abstractt1",
        },
      "34": {
        "abstract_name": "abstract2",
      },
      "35": {
        "abstract_name": "abstract3",
      }
    },
    "folder_name": "folder2",
    "number_of_items": 2,
    "user_id": 6
  }
}

我在同一个文件夹中创建了route.json。我在里面写了这个。

{
  "routes": {
    "/getFolderByFolderId/:id": "/folders?folder_id=:id"
  }
}

我输入了以下命令json-server --watch db.json --routes route.json --port 3001 x1c 0d1x
当http://localhost:3001/folders?folder_id = 14时,我得到200。
那为什么我在http://localhost/getFolderByFolderId/14上得到404呢?
我尝试将db.json更改为

{
  "folders": [{
    "folder_id": 14,
    "abstracts": {
      "33": {
        "abstract_name": "abstractt1",
        },
      "34": {
        "abstract_name": "abstract2",
      },
      "35": {
        "abstract_name": "abstract3",
      }
    },
    "folder_name": "folder2",
    "number_of_items": 2,
    "user_id": 6
  }]
}

还是404

yhxst69z

yhxst69z1#

我不相信你需要路线:routes.json中的{}对象。只需在一个空对象中创建您的自定义路由,如下所示:

{
     "/getFolderByFolderId/:id": "/folders?folder_id=:id"
   }

参考:https://shekhargulati.com/2019/07/10/how-to-setup-json-server-to-use-custom-id-and-route/
此外,我刚刚注意到,当你提到你的路线有麻烦,你没有提到利用一个端口号:
当http://localhost:3001/folders?folder_id=14时,我得到200。那么为什么我在http://localhost/getFolderByFolderId/14上得到404呢
当然,也要确保格式正确。

相关问题