2017-02-13 6 views
0

Ich erhalte einen Fehler beim Versuch, ein Feld aus einer Mongo-Datenbank zu löschen, die ich in einem API-Projekt erstellt habe, an dem ich arbeite. Ich bin immer noch sehr neu, nicht nur REST-APIs, sondern auch MongoDB und Express. Ich folgte einem Tutorial auf Youtube, das die Schritte erklärte, die durchlaufen werden mussten, um eine solche API zu erstellen, und so tat ich es und alles funktionierte perfekt. Jetzt versuche ich diese API mit meinen eigenen benutzerdefinierten Feldern zu reproduzieren.Kann CRUD API (NodeJS, MongoDB, Express) nicht löschen

Grundsätzlich ist meine Datenbank jetzt mit zwei Elementen gefüllt. Ich habe bereits Methoden erstellt, hinzugefügt und aktualisiert, die richtig funktionieren. Hier ist die Antwort für die Get-Methode:

[{"_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}] 

Jetzt ist die Funktion, die ein Problem hat, die Löschfunktion. Ich kann nicht finden, was daran falsch sein könnte. Es ist genau die gleiche Funktion wie in dem vorher erwähnten Youtube Tutorial. Ich habe es hundertmal überprüft, da ist kein Charakter falsch oder fehlt. Hier

ist der Fehler, den ich in Postbote erhalten:

Cannot DELETE /api/clients/58a1178da52bfc07fd25ce3f 

Hier wird der server.js Teil:

// 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); 
     } 
    }); 
}); 

Hier ist der clients.js Teil:

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

Ich weiß nicht, ob ich Ihnen alle Informationen gebe, um das Problem zu lösen. Ich kann nicht für die Liebe von mir herausfinden, woher es kommt.

Ich freue mich darauf, Ihre Antworten zu lesen.

+0

'deleteClient' dauert 3 params - Sie können es nur passieren 2 – tymeJV

+0

Bitte Fügen Sie Informationen hinzu, welche MongoDB-Bibliothek Sie verwenden. Wie bereits erwähnt, benötigt 'deleteClient' 3 Params wo du 2 – necromos

+0

passierst. Ich benutze Mungo. Über die 3 params, das könnte das Problem sein, aber ich habe nur zwei in der vorherigen API überschritten und es hat funktioniert ... Ich werde es untersuchen. – YT98

Antwort

1

Ich denke, ein '/' vor '/ api/clients /: _ id' fehlt

es sollte sein:

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

Das war es ... Ich kann nicht glauben, dass ich das alleine nicht gesehen habe Vielen Dank Tazee. – YT98