【发布时间】:2012-03-16 12:03:48
【问题描述】:
NodeJS + Express,MongoDB + Mongoose
我有一个 JSON 提要,其中每条记录都有一组“场地”属性(例如“场地名称”“场地位置”“场地电话”等)。我想在提要中创建所有场所的集合——每个场所的一个实例,没有欺骗。
我遍历 JSON 并测试场地是否存在于我的场地集合中。如果没有,请保存它。
jsonObj.events.forEach(function(element, index, array){
Venue.findOne({'name': element.vname}, function(err,doc){
if(doc == null){
var instance = new Venue();
instance.name = element.vname;
instance.location = element.location;
instance.phone = element.vphone;
instance.save();
}
}
}
所需:所有场地的列表(没有欺骗)。
结果:场地集合中有很多骗子。
基本上,循环为 JSON 提要中的每条记录创建一个新的 Venue 记录。
我正在学习 Node 及其异步特性,所以我相信 for 循环甚至在第一个 save() 函数完成之前就完成了——所以 if 语句总是检查空集合。 Console.logging 支持这一说法。
我不确定如何对其进行返工以执行所需的任务。我已经尝试过 caolan 的 async 模块,但我无法得到它的帮助。我很有可能使用不正确。
非常感谢您为我指明了正确的方向 - 我已经搜索但无济于事。如果异步模块是正确的答案,我希望您能帮助我们在这种特定情况下如何实现它。
再次感谢!
【问题讨论】:
标签: node.js asynchronous