2017-02-13 3 views
0

Я получаю сообщение об ошибке при попытке удалить поле из базы данных mongo, которую я создал в проекте API, над которым я работаю. Я по-прежнему очень новичок не только с RESTful API, но и с MongoDB и Express. Я последовал за учебником на Youtube, в котором объяснялось, как это сделать, чтобы сделать такой API, и я сделал это, и все сработало отлично. Теперь я пытаюсь воспроизвести этот API, используя собственные поля.Не удается удалить ошибку CRUD API (NodeJS, MongoDB, Express)

В основном моя база данных заполнена двумя элементами прямо сейчас. Я уже создал методы получения, добавления и обновления, которые работают правильно. Вот ответ на метод get:

[{"_id":"58a112564cb325769b9d90de","name":"John Doe","caption":"I like pizza","friends":["id1","id2","id3"],"schedule":[[13,14],[14,15.5]]},{"_id":"58a1178da52bfc07fd25ce3f","name":"Carla Doe","caption":"I hate pizza","__v":0,"friends":null,"schedule":null}] 

Теперь функция, у которой есть проблема, является функцией удаления. Кажется, я не могу понять, что может быть не так. Это то же самое, что и в вышеупомянутом учебнике Youtube. Я проверял сто раз, нет персонажа неправильно или отсутствует.

Здесь ошибка я получаю в почтальона:

Cannot DELETE /api/clients/58a1178da52bfc07fd25ce3f 

Вот это server.js часть:

// Delete client 
app.delete('api/clients/:_id', function(req, res){ 
    var id = req.params._id; 
    Client.deleteClient(id, function(err, client){ 
     if(err){ 
      throw err; 
     } 
     else { 
      res.json(client); 
     } 
    }); 
}); 

Вот clients.js часть:

// Delete Clients 
module.exports.deleteClient = function (id, client, callback) { 
    var query = {_id: id}; 
    Client.remove(query, client, callback); 
}; 

Я не знаю, предоставляю ли я вам всю информацию, необходимую для решения проблемы. Я не могу из-за любви ко мне узнать, откуда она.

Ждем ваших ответов.

+0

'deleteClient' занимает 3 Params - вы только передать его 2 – tymeJV

+0

Пожалуйста добавьте информацию о том, какую библиотеку MongoDB вы используете. Также, как упоминалось ранее, 'deleteClient' нуждается в 3 параметрах, где вы проходите 2 – necromos

+0

Я использую mongoose. О трех параметрах, это может быть проблемой, но я только прошел два в предыдущем api, и это сработало ... Я посмотрю. – YT98

ответ

1

Я думаю, что '/' отсутствует, прежде чем '/ API/клиентов /: _ ид'

должно быть:

app.delete('/api/clients/:_id', function(req, res) 
+0

Вот и все ... Я не могу поверить, что сам этого не видел, спасибо вам большое, Тази. – YT98

Смежные вопросы