【发布时间】:2012-06-05 20:40:04
【问题描述】:
这里的第一个问题,所以希望我做对了......
我正在尝试做的笑话是添加到查询内的列表中,然后能够将该列表从 node.js 传递给我的客户端。我的代码(简化)如下:
socket.on('get_new', function() {
var db = require('mongojs').connect('test', ['col1']);
var db2 = require('mongojs').connect('test', ['col2']);
db.col1.find( function(err, tups) {
var total = [];
if ( err || !rows ) { console.log("error") };
else {
for(row in tups){
var id = row['id'];
db2.col2.find({name:id}, function(foo, bar){
if ( foo || !bar ) { console.log("error") };
else {
total += { name : bar['age'] };
console.log(total); //prints [ {alex:'20'}]
}
}
}
}
console.log(total); // prints []
}
}
正如我在代码中展示的那样,我已经放置了一些 console.log 语句来查看值,它在查询内部与之后是不同的。我猜它与这段代码的范围有关,在我看来好像在运行db.test2.find 之后,内部发生的事情在外部不存在,但我不明白为什么。提前致谢!
【问题讨论】:
标签: javascript node.js mongodb socket.io