如何在callback之外使用mongo客户端访问节点中的mongo db

我一直在看这些例子:

http://mongodb.github.io/node-mongodb-native/2.2/api/

但是对于如何在callback之外访问数据库,我感到困惑不解。 MongoClient.connect似乎不会返回任何东西,我已经尝试在连接调用外声明一个变种,然后有callback修改它,但似乎并不工作。 我该怎么做呢?

在connect的callback中,通过不使用“var”关键字来声明全局。

注意:由于javascript是asynchronous的,因此在使用外部variables之前,没有担保callback是运行的。 使用超时通常是有效的。

示例节点文件:

var MongoClient = require('mongodb').MongoClient; MongoClient.connect('mongodb://localhost:27017/test',connectCallback); function connectCallback(err, db) { col = db.collection('persons'); console.log('Connected to mongodb'); } setTimeout(function() { col.save( {task:"Access db outside callback",result: "Success"}, (err, result) => { if (err) return console.log(err) console.log(result) }) },1000) 

Mongo Shell输出:

在这里输入图像描述