Мне просто интересно, что я делаю что-то неправильно. Я сохранить данные в Монго, как это:Mongoose данные с сервера (Nodejs) не отображаются/.get() слишком поздно
router.route('/userAdditionalData')
//updates current user data
.put(function(req, res, next){
UserAdditionalInfo.findOne({userRef: req.body.userRef}, function(error, foundUser){
if(error){
console.log('Error in adding additional User Data: ', error);
return done(null);
};
if(foundUser){
foundUser.update(req.body, function(error, count){
res.send(200, foundUser)
});
}
else{
var addData = new UserAdditionalInfo();
addData.middleName = req.body.middleName;
addData.employer = req.body.employer;
addData.jobDescription = req.body.jobDescription;
addData.userRef = req.body.userRef;
addData.save(function(error, data){
if(error){
return res.send(500, error)
}
return res.send(200, data);
});
}
});
})
И я получаю данные, как это:
.get(function(req, res){
UserAdditionalInfo.find(function(err, data){
if(err){
return res.send(500, err);
}
return res.send(200, data);
});
});
В моей угловой контроллер, когда я получаю данные с помощью $ http.get():
$http.get('/api/userAdditionalData').then(function(response){
console.log('response -> ', response.data[0]);
controller.userAdditionalData = response.data[0];
});
консоль отлично записывает мой ответ, но, когда я вхожу в controller.userAdditionalData я undefined
. Теперь, когда я положил $timeout
из 10
вокруг моего console.log:
$timeout(function(){
console.log(controller.userAdditionalData);
}, 10);
все работает отлично. Это означает, что мои данные устанавливаются слишком поздно. Есть ли что-то, что я не делаю/делаю неправильно?
где вы используете 'console.log (controller.userAdditionalData);'? –
вне моего .get(), но он определен ранее в контроллере. Таким образом, в основном он возвращает пустой массив. –