MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Проблем с PUT заявка, използваща Node.js (експрес), Angular и MongoDB

Кодовият фрагмент за актуализиране на съществуващи навици трябва да работи добре с някои малки корекции

  1. Когато работите с грешка, винаги използвайте return
  2. Винаги изпращайте обратно състояние. В този случай ще изпратим 500
  3. Проверете за не е намерено и върнете 404
  4. Използвайте прост обект за актуализиране. Това ще актуализира само полета, съдържащи се в обекта за актуализиране
  5. Документът mongodb, върнат от monk, няма функция за запазване, документът трябва да бъде актуализиран чрез колекцията
  6. Проверете дали заявката има тяло и изпратете 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 функция на Монк.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Извличане на аудио - двоичен файл - съхранен в моя Mlab

  2. Как да търсите чрез Object value department.name

  3. MongoDB - Уникален индекс срещу съставен индекс

  4. Как безопасно да игнорирате дублиращи се ключови грешки, като използвате insert_many

  5. Изпратете данни от NodeJS обратно към същата html страница след изпращане на формуляр