Я разрабатываю небольшое 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
В консоли браузера есть это:
Backend вернул код 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);
})
})
Таким образом, похоже, что идентификатор передан в бэкэнд правильно, но похоже, что запрос пуст в маршруте книги?
Можно ли регистрировать происходящеена стороне ExpressJS?