Das Codefragment zum Aktualisieren vorhandener Gewohnheiten sollte mit einigen kleinen Korrekturen problemlos funktionieren
- Wenn ein Fehler auftritt, verwenden Sie immer
return
- Sende immer einen Status zurück. In diesem Fall senden wir 500
- Auf nicht gefunden prüfen und 404 zurückgeben
- Einfaches Aktualisierungsobjekt verwenden. Dadurch werden nur Felder aktualisiert, die im Aktualisierungsobjekt enthalten sind
- Das von Monk zurückgegebene mongodb-Dokument hat keine Speicherfunktion, das Dokument muss über die Sammlung aktualisiert werden
- Überprüfen Sie, ob die Anfrage einen Text hat und senden Sie 400 - Bad Request
Sie können eine Objekt-ID als Hex oder ObjectId an findById
übergeben wie in der Monk-Dokumentation
angegeben .
router.put('/api/habits/:habit_id', function(req, rest){
var db = req.db;
var collection = db.get('habits');
if(!req.body) { return res.send(400); } // 6
collection.findById(req.params.habit_id, function(e,data){
if(e) { return res.send(500, e); } // 1, 2
if(!data) { return res.send(404); } // 3
var update = { title : req.body.title, count : req.body.count }; // 4
collection.updateById(req.params.habit_id, update, function(err) { // 5
if(err) {
return res.send(500, err);
}
res.json(data);
});
});
});
Der obige Code kann weiter vereinfacht werden, indem findAndModify
verwendet wird Funktion von Monk.