Кодовият фрагмент за актуализиране на съществуващи навици трябва да работи добре с някои малки корекции
- Когато работите с грешка, винаги използвайте
return
- Винаги изпращайте обратно състояние. В този случай ще изпратим 500
- Проверете за не е намерено и върнете 404
- Използвайте прост обект за актуализиране. Това ще актуализира само полета, съдържащи се в обекта за актуализиране
- Документът mongodb, върнат от monk, няма функция за запазване, документът трябва да бъде актуализиран чрез колекцията
- Проверете дали заявката има тяло и изпратете 400 - лоша заявка
Можете да подадете идентификатор на обект като шестнадесетичен или ObjectId на findById
както е посочено в документите на Monk
.
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);
});
});
});
Кодът по-горе може да бъде допълнително опростен с помощта на findAndModify
функция на Монк.