【发布时间】:2013-07-22 13:38:05
【问题描述】:
我在一个有效的朋友请求数组中查询一个用户,但是我使用 userAdd 的检查一直显示为未定义。有谁知道为什么它显示为未定义?
这是代码:
exports.searchPost = function(req, res, err) {
User.find({$or:[
{firstName: req.body.firstName},
{lastName: req.body.lastName},
{email: req.body.email},
{phone: req.body.phone}]
}, function(err, users) {
if(err) {
return res.render('searchError', {title: 'Weblio'});
} else {
if(req.body.firstName=== '' && req.body.lastName==='' && req.body.email==='' && req.body.phone=== '') {
//maybe a diff page saying that is not a valid search page
return res.render('searchError', {title: 'Weblio'});
} else {
var userAdd;
console.log('addman');
users.forEach(function(user) {
User.findById(req.signedCookies.userid,
{friendRequest: user._id}, function() {
if(user._id === true ) {
console.log('addman1');
return userAdd = true;
} else {
console.log('addman2');
return userAdd = false;
console.log(user._id);
}
})
});
console.log(userAdd);
return res.render('searchResults', {title: 'Weblio',
usersFound: users,
userAdded: userAdd
});
}
}
});
};
【问题讨论】:
-
欢迎来到 async 的精彩世界!你需要在回调中。
-
The Question 相关?
-
另外,你有一个错误的
x,你的标签很糟糕。 -
是的,抱歉,它实际上是一段更大代码的 sn-p,x 是偶然出现的,因为我从文件中删除了 cmets,抱歉...我更新了包含其余部分的代码
-
我不在回调中吗?我在 users.forEach 中的函数内
标签: javascript node.js mongodb mongoose