2016-11-30 44 views
0

我需要在前端使用nodejs和angularjs更新我的mongodb。我有下面的代码,但我得到这样的'类型错误错误:无法读取未定义用angularjs和节点更新mongodb

我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); 


}]); 

而我在服务器端API: *

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

删除$scope.lol.then(function(user,$http)函数中的$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'); 
});