Здесь следует отметить пару вещей.
1) Ваши маршруты настроены с параметрами пути, но вы пытаетесь ссылаться на свойства из req.body
.Я не уверен, как это работает на первом маршруте, но я ожидаю, что это не должно.Для доступа к параметрам пути вы должны использовать req.params
.
app.delete('/orders/:coffee_id', (req, res) => {
db.collection('orders').findOneAndDelete({name: req.params.coffee_id}, (err, result) => {
...
})
})
2) Во втором маршруте вы объявили параметр пути id
, но пытаетесь получить доступ к свойству name
.Именно здесь реализация отличается от «рабочего» маршрута.Непонятно, если вы хотите использовать ObjectId
документа для удаления или если вы планировали использовать name
документа.
Используя ObjectId
:
app.delete('/coffees/:id', (req, res) => {
db.collection('coffees').findOneAndDelete({_id: req.params.id}, (err, result) => {
...
})
})
Использование name
:
app.delete('/coffees/:name', (req, res) => {
db.collection('coffees').findOneAndDelete({name: req.params.name}, (err, result) => {
...
})
})
Вывод заключается в том, что вы должны использовать то же значение для ссылки на параметр пути, что и значение, объявленное в путипарам.
/coffees/:id
=> req.params.id
(не req.params.name
)