如何将variables传递给routes.index

在文件app.js我有:

  , mongoose = require('mongoose') , db = mongoose.connect('mongodb://localhost/expressdb'); app.get('/', routes.index); 

我有文件routes/index.js ,如果我想传递dbvariablesroutes.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;

Interesting Posts