Node.js mongoose连接后如何获取数据库?

Node.js mongoose连接后如何获取数据库?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我是node的新手,在mlab上有一个远程数据库,我想使用mongoose.connect连接到我的数据库。我想通过指定的路径访问该数据库 我的代码如下所示: var db = null; db = mongoose.connect('mongodb://username:password@ds135186.mlab.com:12345/collection', function (err, database) { db = database }); 我将路线定义为: app.get('

我是node的新手,在mlab上有一个远程数据库,我想使用
mongoose.connect
连接到我的数据库。我想通过指定的路径访问该数据库

我的代码如下所示:

var db = null;

db = mongoose.connect('mongodb://username:password@ds135186.mlab.com:12345/collection', function (err, database) {
  db = database
});
我将路线定义为:

app.get('/fetchtest', function (req, res) {
  db.collection('okhitweets').find({}).limit(10).toArray(function (err, doc) {
    res.send(JSON.stringify(doc))
  })
});
由于数据库未初始化,我无法找到未定义的集合。我试着在网上查找有关如何访问数据库的信息,但没有得到多少帮助。如何访问此数据库。我的应用程序将相当小,因此我不需要在不同的文件等中定义路由,并且数据库存在于mlab cloud上。

您可以在数据库分配之后立即将以下内容添加到server.js(即主文件)(不是在分配的范围内,而是在全局范围内)

然后在你的路线(或主文件)中说

您还可以签出
EventEmitter
,这样只有在连接到数据库时才能启动服务器

让我知道这是否有帮助

编辑1:如果你还“活着”(只是开玩笑),下面的片段可能比我分享的片段更适用

app.all('*', (req, res, next) => {
    req.db = db;
    next();
});
这也使得数据库连接在所有路由中都可用。

您可以在数据库分配之后立即将以下内容添加到server.js(即主文件)(不是在您分配的范围内,而是在全局范围内)

然后在你的路线(或主文件)中说

您还可以签出
EventEmitter
,这样只有在连接到数据库时才能启动服务器

让我知道这是否有帮助

编辑1:如果你还“活着”(只是开玩笑),下面的片段可能比我分享的片段更适用

app.all('*', (req, res, next) => {
    req.db = db;
    next();
});

这也使得db连接在所有路由中都可用。

这似乎是正确的。但是,我的mlab云目前无法连接。一旦它开始工作,将立即投票并标记此权限。谢谢你,每当我这么做的时候。没有对服务器的调用正在完成app。使用((req,res)=>{req.db=db})这似乎是正确的。但是,我的mlab云目前无法连接。一旦它开始工作,将立即投票并标记此权限。谢谢你,每当我这么做的时候。没有对服务器的调用正在完成App。使用((req,res)=>{req.db=db})未定义的找不到集合的答案为。但是,当您使用Mongoose时,通常不会访问这样的集合。然而,当您使用Mongoose时,您通常不会访问这样的集合。
app.all('*', (req, res, next) => {
    req.db = db;
    next();
});