2016-04-12 3 views
2

sagen, dass ich die folgende Route in meiner DateiHinzufügen einer Route, die nicht bereits Mongoose mit existieren

app.get('/node/:id', function(req, res){ 

}); 

diese ID nicht erkannt Sagen haben wird und so für sie eine Route existiert noch nicht, wie Es existiert noch nicht in der Datenbank. Was kann ich tun, um eine Route für diese ID zu generieren und die neue ID in meiner Datenbank zu speichern?

+0

Sie können das findOrCreate-Plugin verwenden, um Knoten (?) Zu erstellen, die nicht gefunden werden: https://github.com/drudge/mongoose-findorcreate. Aber ich denke du bekommst Mungo und Express. –

+0

sicherlich gibt es eine app.post Methode irgendeiner Art, die ich verwenden kann, um nur diese ID in meine Datenbank hinzuzufügen? – Django

+0

Express hat eine 'app.post()' Methode, ja. Sie können darüber in der Express-Dokumentation lesen: http://expressjs.com/en/4x/api.html#app.post.method. Um ein neues Objekt mit Mongoose hinzuzufügen, können Sie 'YourModel.create()' aufrufen. Hast du schon etwas probiert? –

Antwort

0

Sie können mongoose-findorcreate verwenden, um zu überprüfen, ob id in Ihrer Datenbank vorhanden ist, und das Objekt erstellen, wenn es nicht existiert, oder anderweitig die Logik ausführen, die Sie für das gefundene Objekt benötigen.

Sie können auf den Platzhalter :id unter Verwendung von req.params.id zugreifen.

app.get('/node/:id', function(req, res){ 
    Model.findOrCreate({ _id: req.params.id }, function(err, click, created) { 
    // created will be false here 
    console.log('Did not create a new click for "%s"', click.ip); 
    }) 
}); 

Vollständiges Beispiel im mongoose-findorcreate Repository.

Verwandte Themen