首页 > 解决方案 > HTTP DELETE 函数在 JSON-server 中表现得非常彻底

问题描述

我正在尝试将 HTTP 请求发送到我的 Angular 应用程序中的 JSON 服务器,以更新 JSON 文件。

当我尝试删除一个job对象时,正在删除多个作业,而不是我指定的那个。

这是我的Job Service代码删除方法:

baseUrl = 'http://localhost:3000/jobs';

deleteJob(id: number): Observable<void> {
    return this.httpClient.delete<void>(`${this.baseUrl}/${id}`)
      .pipe(catchError(this.handleError));
}

这是我的一些 JSON 文件:

"jobs": [
    {
      "id": 1,
      "title": "UI UX",
      "description": "DESC",
      "employeeId": "2",
      "managerId": "1",
      "imageUrl": ""
    },
    {
      "id": 2,
      "title": "devops",
      "description": "asdf",
      "employeeId": "1",
      "managerId": "13",
      "imageUrl": ""
    },
    {
      "id": 3,
      "title": "asdf",
      "description": "adf",
      "employeeId": "",
      "managerId": "1",
      "imageUrl": ""
    },
    {
      "id": 6,
      "title": "asdf",
      "description": "adf",
      "employeeId": "",
      "managerId": "1",
      "imageUrl": ""
    }
  ],

如果我将 6 作为 ID 传递给该deleteJob()方法。不是只删除该作业对象,而是删除 ID 为 2,3 和 6 的作业,并在控制台中打印:

删除 /jobs/6

我认为问题可能与baseUrl,因为它没有指定id属性。

所以我尝试了这个:

deleteUrl = 'http://localhost:3000/jobs/id';

deleteJob(id: number): Observable<void> {
    return this.httpClient.delete<void>(`${this.deleteUrl}/${id}`)
      .pipe(catchError(this.handleError));
}

但是现在,没有jobs被删除,并且我在控制台中收到此消息:

删除 /jobs/id/6 404(未找到)

有人可以告诉我为什么会发生这种行为以及如何解决吗?

标签: angularhttpobservableangular-httpclientjson-server

解决方案


推荐阅读