如何从节点中的所有模型访问 mongodb

How to access mongodb from all models in node

我是第一次从头开始构建我的节点项目,我想知道如何从所有模型文件中访问 db 对象?

我的项目结构如下:

 project/
  |-> controllers/
  |   |-> auth.js
  |
  |-> lib/
  |-> models/
  |   |-> token.js  
  |   |-> user.js
  |
  |-> views/
  |-> app.js

目前,mongo 连接在 app.js 上启动,当用户向服务器发出请求并且数据库对象存储在请求上以便可以从控制器访问时,..

// Set db on req
app.use(function(req, res, next) {
  req.db = mongoskin.db( /* connect string */ );
  next();
});

现在的问题是: 当我在控制器上时,我可以使用 req.bd 对象进行查询。但是我只想在我的模型上使用数据库,所以每次我需要一个模型时我都必须传递这个对象..

我有更好的解决方案吗?模型必须连接到数据库?或者我完全错了?

感谢您的帮助!


奖金问题:什么是最好的数据库连接?

你可以将它分配给应用程序,不过,我会用它制作一个模块。

mongodb.js

module.exports = mongoskin.db( /* connect string */ );

现在您可以在任何需要的地方使用它。

var db = require('../lib/mongodb');

myModel.myMethod = function () {
    db.doSomething();
};