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在发布请求后出现错误的主要内容,如果未能解决你的问题,请参考以下文章
将 macOS 从 Big Sur 升级到 Monterey 后,发布请求出现 403 禁止错误
Spring CSRF:即使在设置请求标头后,Ajax 也会出现 403 错误
我有一个带有获取请求的循环,在 5 次循环后出现 403 错误