2016-11-30 6 views
0

Мне нужно обновить мой mongodb, используя nodejs и angularjs на переднем конце. У меня есть следующий код, но я получаю сообщение об ошибке, как `TypeError: Не удается прочитать свойство«положить»неопределеннойОбновление mongodb с помощью angularjs и узла

Мой angularjs контроллер:

myApp.controller('userController', ['$scope', '$resource', 'AuthService','iden','$http', function ($scope, $resource, AuthService,iden,$http) { 

console.log(usersOnline); 
var Meetup = $resource('/api/user', {},{ 
    query: {method: 'get', isArray: true} 
}); 

$scope.users = []; 
$scope.userss = []; 
$scope.text='mikyas'; 
    Meetup.query({text: usersOnline}).$promise.then(function (results) { 
    $scope.users = results; 
    }, function(error) { 
    // console.log(error); 
    $scope.meetups = []; 
}); 
    console.log(usersOnline); 


function getUser(iden,$http) { 
//return promise here 
    var Users = $resource('/api/users', {},{ 
    query: {method: 'get', isArray: true} 
    }); 

    $scope.usersOnline='a'; 
    return Users.query({username: usersOnline}).$promise 
    //other code as is 

} 

$scope.id='cpasgrave'; 
$scope.lol=getUser(); 
$scope.lol.then(function(user,$http){ 
console.log(user[0]._id); 
iden=user[0]._id; 
$scope.userss = user; 
console.log(iden); 

$http.put('/api/updateUser' + user[0]._id, user[0]); 
}); 
console.log(iden); 


}]); 

И мой апи на стороне сервера: *

module.exports.updateUser = function (req, res) { 
var id = req.body.id; 
User.findById(id, function(err, user) { 
    if (err) throw err; 

    // change the users location 
    user.auto = 'true'; 

    // save the user 
    user.save(function(err) { 
    if (err) throw err; 

    console.log('User successfully updated!'); 
    }); 

}); 
} 
` 

ответ

1

Удалите аргумент $http в вашей функции $scope.lol.then(function(user,$http).

$scope.lol.then(function(user){ 
    console.log(user[0]._id); 
    iden=user[0]._id; 
    $scope.userss = user; 
    console.log(iden); 

    $http.put('/api/updateUser' + user[0]._id, user[0]); 
}); 

Кроме того, если вы определяете getUser (iden, $http), убедитесь, что вы положили правильные аргументы при вызове его ...

$scope.id='cpasgrave'; 
$scope.lol=getUser(iden, $http); 
0

попробуйте заменить это:

$http.put('/api/updateUser' + user[0]._id, user[0]); 
}); 

с этим:

$http({ 
    method: 'PUT', 
    url: '/api/updateUser' + user[0]._id, user[0] 
}).then(function successCallback(response) { 
    console.log('put success'); 
}, function errorCallback(response) { 
    console.log('put failed'); 
}); 
Смежные вопросы