我只是想知道如果我做错了什么。我将数据保存到蒙戈是这样的:从服务器(Nodejs)的Mongoose数据不显示/ .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
。现在,当我把10
一个$timeout
在我的console.log:
$timeout(function(){
console.log(controller.userAdditionalData);
}, 10);
一切工作正常。这意味着我的数据设置得太晚了。有没有我不做/做错的事情?
你在哪里使用'console.log(controller.userAdditionalData);'?我的.get()之外的 –
,但它在控制器的早期定义。所以基本上它返回一个空数组。 –