如何将variables传递给routes.index
在文件app.js
我有:
, mongoose = require('mongoose') , db = mongoose.connect('mongodb://localhost/expressdb'); app.get('/', routes.index);
我有文件routes/index.js
,如果我想传递db
variablesroutes.index
我该怎么办?
我已经设置了一个关于如何实现这个的例子,通过将db作为parameter passing给路由模块,并且该模块返回一个函数(其中db是可见的):
routes.index
module.exports = function (db) { return function(req, res, next) { // you can access db here } }
app.js
... routes = {}; routes.index = require('./routes')(db); ...
我认为如果你尝试创build另一个连接(即:数据库接口是一个单例),那么连接到数据库以便共享连接的库中相当标准。 你可以尝试简单的调用
db = mongoose.connect('mongodb://localeyes/expressdb');
在您的routes / index.js文件中,它可能会使用相同的连接。 我build议阅读代码,看看它是否会使用现有的连接,或者如果它尝试每次你调用它重新连接。
编辑:在第二个想法,你有另一个,不太可口的select:你可以使它像这样的全球
global.db = db;
然后在你的routes / index.js中
var db = global.db;