Javascript 如何将express.js与本机mongoDB驱动程序一起使用

Javascript 如何将express.js与本机mongoDB驱动程序一起使用,javascript,mongodb,express,Javascript,Mongodb,Express,我在尝试从我的express应用程序中执行简单的mongoDB查询时遇到了困难: app.js routes/index.js 我是否正确理解exports.index参数是一个数据库实例?如果是这样,为什么我不能执行db.getCollectionNames() 如何处理路由中的数据库实例?node.js是异步的。这意味着db和dbInstance在Mongoclient.connect()函数调用之后不存在,而在回调中不存在。因此,您的代码必须如下所示: MongoClient.connec

我在尝试从我的express应用程序中执行简单的mongoDB查询时遇到了困难:

app.js routes/index.js 我是否正确理解exports.index参数是一个数据库实例?如果是这样,为什么我不能执行
db.getCollectionNames()


如何处理路由中的数据库实例?

node.js是异步的。这意味着
db
dbInstance
Mongoclient.connect()函数调用之后不存在,而在
回调中不存在。因此,您的代码必须如下所示:

MongoClient.connect(mongourl, function(err, db) {
    ...
    app.get( '/', routes.index( db ) );
    ...
});

这会被视为最佳实践吗?如果没有,是否有一种方法可以实现这一点,而不必将连接中的几乎所有内容都打包?
exports.index = function(db){
  return function(req,res){

  }

};
MongoClient.connect(mongourl, function(err, db) {
    ...
    app.get( '/', routes.index( db ) );
    ...
});