【发布时间】:2018-05-30 09:58:02
【问题描述】:
我正在开发一个小型 MEAN 应用程序,但在尝试删除或更新记录时遇到了问题。
book.component.ts
deleteBook(id) {
this.api.deleteBook(id)
.subscribe(res => {
this.router.navigate(['/books']);
}, (err) => {
console.log(err);
}
);
}
api.service.ts
deleteBook(id: string): Observable<{}> {
return this.http.delete(`${apiUrl}/${id}`, httpOptions)
.pipe(
catchError(this.handleError)
);
}
这是 ExpressJS 和 Angular 的命令行输出:
[1] [HPM] Rewriting path from "/api/5b0e61859a51ca1cc05ef819" to "http://localhost:3000/api/5b0e61859a51ca1cc05ef819"
[0] DELETE /api/5b0e61859a51ca1cc05ef819 500 0.180 ms - -
[1] [HPM] DELETE /api/5b0e61859a51ca1cc05ef819 ~> http://localhost:3000
在浏览器控制台中得到这个:
后端返回代码 500,正文为:null
这是我的 /routes/book.js 删除函数:
router.delete(':/id', function(req, res, next) {
Book.findByIdAndRemove(req.params.id, req.body, function (err, post) {
if (err) return next (err);
res.json(post);
})
})
所以看起来 id 已正确传递到后端,但在 book 路由中 req 似乎是空的?
是否可以记录 ExpressJS 方面发生的事情?
【问题讨论】:
-
您致电
next(err),您应该在某处处理该错误。显示处理应用错误的代码。
标签: express