json-server db.json 中带有“/”的路径

jsc*_*ode 6 javascript json-server

我使用server-json来创建一个假 API,我在 data.json 中有路径“playbook/active”

"playbook/active": [{
    "description": "This playbook will install haproxy",
    "name": "Testing playbook 3",
    "tag": [
      "loadbalancer",
      "charge"
    ],
    "path": "/etc/ansible/haproxy.yml",
    "type": "action",
    "id": "4bb107be-9efe-11e9-b3e5-bc5ff4901aa5"
  },
  {
    "path": "google.com",
    "description": "This is the playbook before execution",
    "tag": [
      "webserver",
      "tomcat"
    ],
    "id": "faa746b4-9cb7-11e9-9b94-bc5ff4901aa5",
    "name": "mysql"
  }
]
Run Code Online (Sandbox Code Playgroud)

但我有这个错误

错误:哎呀,在数据库属性“playbook/active”中找到/字符。

我更改为“playbook/active”但同样的错误

Lef*_*ris 6

提供完整的答案(展示示例)

\n

配置db.jsonroutes.json可以为您解决问题:

\n
    \n
  • 数据库.json
  • \n
\n
{\n    "playbookActive": [\n        {\n            "id": 1,\n            "name": "Active Playbook 1",\n            "description": "Description 1"\n        },\n        {\n            "id": 2,\n            "name": "Active Playbook 2",\n            "description": "Description 2"\n        }\n    ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n

路线.json

\n
{\n    "/playbook/active": "/playbookActive",\n    "/playbook/active/:id": "/playbookActive/:id"\n}\n
Run Code Online (Sandbox Code Playgroud)\n
\n

注意:routes.json 中的映射如下所示:[expanded/endpoint]: aliasEndpoint其中aliasEndpoint应与 db.json 中的映射匹配。

\n
\n

包.json

\n
{\n    ...\n    "scripts": {\n        "api": "json-server [path-to-db.json] --routes [path-to-routes.json] --no-cors=false"\n    },\n    ...\n}\n
Run Code Online (Sandbox Code Playgroud)\n

验证启动时的路由(来自 的日志npm run api):

\n
Resources\nhttp://localhost:3000/playbookActive\n\nOther routes\n/playbook/active -> /playbookActive\n/playbook/active/:id -> /playbookActive/:id\n\nHome\nhttp://localhost:3000\n\n
Run Code Online (Sandbox Code Playgroud)\n

例子

\n

获取 \xe2\x86\x92 http://localhost:3000/playbook/active

\n

响应包含包含所有活动剧本的列表

\n
Resources\nhttp://localhost:3000/playbookActive\n\nOther routes\n/playbook/active -> /playbookActive\n/playbook/active/:id -> /playbookActive/:id\n\nHome\nhttp://localhost:3000\n\n
Run Code Online (Sandbox Code Playgroud)\n

获取 \xe2\x86\x92 http://localhost:3000/playbook/active/2

\n

响应包含与 id=2 匹配的活动剧本

\n
[\n  {\n    "id": 1,\n    "name": "Active Playbook 1",\n    "description": "Description 1"\n  },\n  {\n    "id": 2,\n    "name": "Active Playbook 2",\n    "description": "Description 2"\n  }\n]\n
Run Code Online (Sandbox Code Playgroud)\n