我的问题似乎与节点的异步方面有关,但我无法理解为什么。
此代码工作:
expertsArray = ["expert1", "expert2"];
db.collection("users").findOne({first_name: expertsArray[0]}, function(err, expert) {
console.log(expert.userid);
});
});
此代码BUGS:
expertsArray = ["expert1", "expert2"];
db.collection("users").find({ first_name: {$in: expertsArray} }, function(err, experts) {
experts.forEach(function(err, expert) {
console.log(expert.userid);
});
});
});
在第二种情况下,专家存在且是[对象],但错误是:
错误:[致命]你的机器人TypeError发生了未处理的异常: 无法读取属性'userid'为null
我也尝试将第一个代码放入FOR循环中,但是出现了同样的错误...... 谁能帮我理解?非常感谢:)
答案 0 :(得分:2)
forEach
中的参数错误。
根据Mozilla,论据是:
currentValue, index
但你有
err, expert
所以请尝试:
experts.forEach(function(expert, expertIndex) {
console.log(expert.userid);
});
});