Het codefragment om bestaande gewoonten bij te werken zou prima moeten werken met enkele kleine correcties
- Als een fout optreedt, gebruik dan altijd
return
- Stuur altijd een status terug. In dit geval sturen we 500
- Controleer op niet gevonden en retourneer 404
- Gebruik een eenvoudig update-object. Hiermee worden alleen velden in het update-object bijgewerkt
- Het mongodb-document dat door monnik is geretourneerd, heeft geen opslagfunctie, het document moet worden bijgewerkt via de verzameling
- Controleer of het verzoek een hoofdtekst heeft en stuur 400 - Bad Request
U kunt een object-ID als hex of ObjectId doorgeven aan findById
zoals vermeld in de Monk-documenten
.
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);
});
});
});
De bovenstaande code kan verder worden vereenvoudigd met behulp van de findAndModify
functie van monnik.