2014-11-16 4 views
0

Я играю с node.js и mongo.db в эти выходные. На данный момент я пытаюсь обновить запись в коллекции.Обновление записи коллекции mongodb

Когда вызывается функция archiveuser, я получаю сообщение «Не удалось загрузить ресурс: net :: ERR_EMPTY_RESPONSE» в консоли developertools. Я использую подобный фрагмент для функции archiveuser для удаления пользователей, и это работает отлично. Я не могу понять, почему это сейчас терпит неудачу.

Я написал этот фрагмент кода для выполнения обновления в пределах users.js:

router.put('/updateuser/:id', function(req, res) { 
    var db = req.db; 
    var userToUpdate = req.params.id; 

    db.userlist.update({"_id" : userToUpdate}, 
     { 
      $set:{'archived':'1'} 
     }) 
}); 

который вызывается из global.js от этой функции:

function archiveUser(event) { 
    $.ajax({ 
     type: 'UPDATE', 
     url: '/users/updateuser/' + $(this).attr('rel') 
    }).done(function(response) { 

     // Check for a successful (blank) response 
     if (response.msg === '') { 
      alert('Success'); 
     } 
     else { 
      alert('Error: ' + response.msg); 
     } 
    }); 
}; 

Если бы я был используя php с mysql Я бы запускал запрос обновления, похожий на этот.

UPDATE userlist 
SET archived='1' 
WHERE id=$usertodelete; 

Любая помощь очень ценится

Тони

+0

Ваш код выглядит правильно. Но только при условии, что 'userToUpdate' является правильно сформированным и действительным ObjectId. Пожалуйста, подтвердите, какая строка точно передается в 'db.userlist.update'. – Philipp

+0

@Philipp - строка 54654563c46d365a4c60ed98, которая соответствует идентификатору пользователя в коллекции – tonyedwardspz

+0

Возможно, проблема связана с тем, что ваш маршрутизатор связывается с '/ updateuser/[id]', в то время как ваш запрос ajax - '/ users/updateuser/[id ] '? – Philipp

ответ

0

Как @Philipp отметил, код отлично и работает, как ожидалось.

Проблема у меня была, я не понимаю, что сервер узла необходимо перезапустить с каждым изменением в файл Node.js JS (маршруты, app.js и т.д.)

Я установил nodemon (https://github.com/remy/nodemon), который перезапускает сервер, когда он обнаруживает изменение. Это в сочетании с живой перезагрузкой веб-браузера решило проблему.

Смежные вопросы