db_handle = new mongodb.Db("spa", mongodb_server, {safe: true});db_handle.collection( obj_type, function(outer_error, collection){ collection.find(find_map, fields_map).toArray(function(inner_error, map_list){ callback(map_list); }); });上面的操作為什么要在collection方法里面操作,貌似被包了兩層,有點(diǎn)看不懂哦
2 回答

Cats萌萌
TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
第一層的回調(diào)函數(shù)中拿到集合,
第二層集合查詢(xún),回調(diào)得到查詢(xún)結(jié)果

撒科打諢
TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
NodeJS的精髓在于異步非阻塞,明白了這點(diǎn)很多事情就好理解了。說(shuō)直白點(diǎn)就是:需要等待的地方就會(huì)有一個(gè)函數(shù),等這個(gè)操作準(zhǔn)備好的時(shí)候會(huì)調(diào)用這個(gè)函數(shù)。所以你這里的兩個(gè)函數(shù)其實(shí)代表了兩個(gè)等待:
連接數(shù)據(jù)庫(kù)。這是網(wǎng)絡(luò)操作需要等待,所以第一個(gè)函數(shù)是在等這個(gè)
獲取結(jié)果。你的查詢(xún)需要一定時(shí)間才能返回,所以第二個(gè)函數(shù)是在等結(jié)果返回
- 2 回答
- 0 關(guān)注
- 833 瀏覽
添加回答
舉報(bào)
0/150
提交
取消