我的回调有问题,我不知道怎么回来。
index: function(req, res,next) {
User.find().exec(function(err,users) {
if(err) {
//do something
}
res.locals.users = users
return true;
});
Country.find().exec(function(err,countrys) {
//save country
}
console.log(res.locals.users)
res.view({
users: res.locals.users,
country: countrys
user:res.locals.user
});
}
如何才能访问这两个对象?
谢谢
答案 0 :(得分:2)
您的数据库调用正在运行async
,这意味着在将数据传递给它们之前呈现视图。所以你必须以同步的方式制作它们。这可以通过回调获得,或者你可以链接你的函数而不是回调,比如这个,
index: function(req, res,next) {
User.find().exec(function(err,users) {
if(err) {
//do something
}
else{
res.locals.users = users
Country.find().exec(function(err,countrys) {
if(err) {
//do something
}
else{
console.log(res.locals.users)
res.view({
users: res.locals.users,
country: countrys
user:res.locals.user
});
}
}
}
});
}
其他方式是使用回调。
答案 1 :(得分:2)