【问题标题】:CRUD: DELETE is called before user callsCRUD:在用户调用之前调用 DELETE
【发布时间】:2019-06-21 19:00:55
【问题描述】:

一旦我打开 localhost:4200 应用程序,已经有一个旧的删除请求。我的新删除请求在按下删除按钮 (404 (Not Found)) 时也不起作用,尽管它确实在手动将 URL 输入搜索栏后删除了该项目。

Pre-loaded delete request

404 (Not Found) Error using button

//rug-list.component.ts
...
    deleteRug(rug: Rug): void {
        if (confirm(`Are you sure you want to delete rug: ${rug.name}?`)) {
            this.rugService.deleteRug(rug.id).subscribe( // "id" is not the mongo-assigned variable "_id", but rather a custom var of the rug object
                res => { console.log('Deleted'); }
            );
        }
    }
}
//rug.service.ts
...
deleteRug(id: number): Observable<{}> { 
        return this.http.delete<Rug>(`${this.uri}/${id}/delete`);
    }
//rug.route.js
...
rugRoutes.route('/:id/delete', { useFindAndModify: false }).get(function (req, res) {
    let id = req.params.id;
    Rug.findOneAndDelete({ "id": id }, function (err) {
        if (err) { return res.json(err); }
        else { res.json('Successfully deleted'); }
    });
});

【问题讨论】:

  • 请尽可能多地发布与您的问题相关的代码。任何人都很难提出其他建议。

标签: node.js angular web-services crud


【解决方案1】:

查看答案:GET http://localhost:4000/rugs 500 (Internal Server Error)

将 this.http.delete 更改为 this.http.get,匹配 rug.route.js 中的 .get()

//rug.service.ts
...
deleteRug(id: number): Observable<{}> { 
        return this.http.get<Rug>(`${this.uri}/${id}/delete`);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 2016-04-16
    相关资源
    最近更新 更多