表达js,node,mongo保存方法

时间:2014-06-27 07:26:14

标签: javascript node.js express node-mongodb-native

我有这个功能" saveUser",它从文本框中获取值,并更新用户的信息,然后使用ajax将对象发布到我们的updateuser服务。

function saveUser(event){

    event.preventDefault();

    var errorCount = 0;
    $('#editUser input').each(function(index, val) {
      if($(this).val() === '') { errorCount++; }
      });

    if(errorCount === 0) {
       var existingUser = {
        'username': $('#editUser fieldset input#inputUserName').val(),
        'email': $('#editUser fieldset input#inputUserEmail').val(),
        'fullname': $('#editUser fieldset input#inputUserFullname').val(),
        'age': $('#editUser fieldset input#inputUserAge').val(),
        'location': $('#editUser fieldset input#inputUserLocation').val(),
        'gender': $('#editUser fieldset input#inputUserGender').val()
         }

         $.ajax({
            type: 'POST',
            data: existingUser,
            url: '/users/updateuser/' + data_id,
            dataType: 'JSON'
         }).done(function( response ) {


        if (response.msg === '') {
            $('#editUser fieldset input').val('');
            populateTable();
            disableSaveBtn();
        }
        else {

            alert('Error: ' + response.msg);
        }
    });
}
  else {
      alert('Please fill in all fields');
      return false;
      }
 };

这是updateuser服务的代码。

  router.put('/updateuser/:id',function(req, res){
     var id = req.params.id;
     var user = req.body;
     delete user._id;
     console.log('Updating user: ' + id);
     console.log(JSON.stringify(user));
     db.collection('userlist', function(err, result) {
        collection.update({'_id':new BSON.ObjectID(id)}, user, {safe:true}, function(err, result) {
           if (err) {
               console.log('Error updating user: ' + err);
               res.send({'error':'An error has occurred'});
           } else {
               console.log('' + result + ' document(s) updated');
               res.send(user);
                  }
       });      
   });
});

当我点击进入用户帐户并进行了编辑,然后将其保存,

我在我的控制台上看到了这个:

POST /users/updateuser/53aca86c005afcbc0faac5be 404 128ms - 1.08kb

我的所有操作都很好,除了这个操作。添加用户工作正常,删除用户也正常工作,基于id的用户检索也不错,除了这个保存操作。

1 个答案:

答案 0 :(得分:1)

您正在发帖请求。但是你的路由器正在处理PUT请求

改为使用

router.post('/updateuser/:id',function(req, res){