json-server在发布请求后出现错误

Posted

技术标签:

【中文标题】json-server在发布请求后出现错误【英文标题】:json-server getting error after post request 【发布时间】:2019-02-01 11:48:37 【问题描述】:

我正在使用 json-server,但出现以下错误。我做错了什么?

TypeError:无法读取未定义 [0] 的属性“id” 函数.createId (/Users/Picchu/Documents/url/node_modules/json-server/lib/server/mixins.js:47:39) [0] 在 Function.insert (/Users/Picchu/Documents/url/node_modules/lodash-id/src/index.js:47:49) [0] 在 /Users/Picchu/Documents/url/node_modules/lodash/lodash.js:4388:28 [0] 在 arrayReduce (/Users/Picchu/Documents/url/node_modules/lodash/lodash.js:683:21) [0] 在 baseWrapperValue (/Users/Picchu/Documents/url/node_modules/lodash/lodash.js:4387:14)

  createShortUrl(data: ShortUrl): Observable<any> 
    let params = new HttpParams();
    params = params.append('url', 'http://google.com');
    return this._http.post(`$'/api'`,  params: params ).pipe(map((res) => 
      return res;
  

【问题讨论】:

请提供您的 db.json 文件。此错误的可能原因是您的 JSON 中缺少 id 【参考方案1】:

如果您在 JSON 数据库中已经有一些数据(在我们开始发送请求之前),请确保这些对象具有名为“id”的属性。

例如:



cards:[

"id":"1",
      "name":"something"

   ]


JSON 数据需要一个名为“id”的属性来存储我们发送的数据。(如果已经有一些数据手动存储在 DB 中)

如果我们发送第一个请求时数据库是空的,它会自动分配一个参数“id”(并给它一些随机值)除了提供的数据(如果我们没有提到“id”参数明确地)和每一个进一步的请求。

【讨论】:

【参考方案2】:

与其发出“发布”请求,不如将其更改为“获取”请求

【讨论】:

【参考方案3】:

json-server 第一个属性应该是 "id" : 1

【讨论】:

以上是关于json-server在发布请求后出现错误的主要内容,如果未能解决你的问题,请参考以下文章

处理 POST 请求后出现“方法不允许”错误

将 macOS 从 Big Sur 升级到 Monterey 后,发布请求出现 403 禁止错误

Spring CSRF:即使在设置请求标头后,Ajax 也会出现 403 错误

我有一个带有获取请求的循环,在 5 次循环后出现 403 错误

为啥在禁用 webdav 后,在本地工作的 WebApi 的 DELETE 请求上出现 405 方法不允许错误?

无法从 json-server 获取嵌套的对象数组