Đoạn mã để cập nhật các thói quen hiện có sẽ hoạt động tốt với một số chỉnh sửa nhỏ
- Khi chạy bị lỗi, hãy luôn sử dụng
return
- Luôn gửi lại trạng thái. Trong trường hợp này, chúng tôi sẽ gửi 500
- Kiểm tra không tìm thấy và trả lại 404
- Sử dụng đối tượng cập nhật đơn giản. Thao tác này sẽ chỉ cập nhật các trường có trong đối tượng cập nhật
- Tài liệu mongodb do nhà sư trả về không có chức năng lưu, tài liệu này cần được cập nhật qua bộ sưu tập
- Kiểm tra xem yêu cầu có nội dung hay không và gửi 400 - Yêu cầu không hợp lệ
Bạn có thể chuyển một id đối tượng dưới dạng hex hoặc ObjectId vào findById
như đã nêu trong tài liệu 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);
});
});
});
Đoạn mã trên có thể được đơn giản hóa hơn nữa bằng cách sử dụng findAndModify
chức năng của Monk.