node/mongo/functions/scopeing的怪异行为
Weird behavior with node/mongo/functions/scoping
我有这个express.js路由
app.get("/explore/:category?", checkCategory, function(req, res){
var params = new Array();
params["path"] = req.route.path;
Category.findOne({hash:category}, function (err, doc) {
params["category"] = doc;
});
console.log(params);
当您在findOne中时,doc值和params["category"]值都很好。然而,在该范围之外,它会消失,params["category"]变为"未定义"。现在,在刷新页面一次后,它会恢复正常行为,并且在节点的其余运行过程中似乎一直保持这种状态。
为什么会出现这种行为?
发生这种情况是因为console.log在您传递给findOne的回调之前被调用。如果你这样改变它,它会像预期的那样工作:
Category.findOne({hash:category}, function (err, doc) {
params["category"] = doc;
console.log(params);
});
另外,请参阅类似问题的答案。
相关文章:
- 测试mongo脚本中是否存在参数
- 在Meteor Mongo中寻找价值
- 如何使用javascript var引用Mongo DB集合's字段
- Validate JSON from Mongo?
- 如何组织用户系统的Mongo集合
- 检查对象是否是mongo游标
- Electron:Express.js服务器在Mongo数据库'It’准备好了
- 尝试过滤“;引号"基于'"类别“;使用流星&mongo
- Mongo aggregation 2
- Mongo-JS-如何将BSON/JSON对象转换为XML
- 无法将参数传递给mongo find集合
- 在不重构Mongo数据库的情况下,更新嵌入数组中的具有给定ID的对象
- Mongo操作符$pull不工作(Meteor.js)
- 让 Mongo 连接到 Express App
- 如何在 Meteor 中的 Mongo 查询中使用变量作为字段名称
- 遍历 mongo 光标以列出 Meteor Blaze 中的所有值
- 范围错误与 mongo 进行$near查找
- Mongo/Mongoose快速更新会导致数据丢失
- 以有效的方式搜索对象列表 mongo
- node/mongo/functions/scopeing的怪异行为