我是从头开始构建节点项目,我想知道如何从所有模型文件访问db对象?
我的项目结构如下:
project/
|-> controllers/
| |-> auth.js
|
|-> lib/
|-> models/
| |-> token.js
| |-> user.js
|
|-> views/
|-> app.js
目前,当用户向服务器发出请求并且db对象存储在req上以可以从控制器访问时,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();
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句