在文件app.js
我有:如何传递变量routes.index
, mongoose = require('mongoose')
, db = mongoose.connect('mongodb://localhost/expressdb');
app.get('/', routes.index);
和我有文件routes/index.js
,如果我想db
变量转移到routes.index
我应该怎么办?
在文件app.js
我有:如何传递变量routes.index
, mongoose = require('mongoose')
, db = mongoose.connect('mongodb://localhost/expressdb');
app.get('/', routes.index);
和我有文件routes/index.js
,如果我想db
变量转移到routes.index
我应该怎么办?
我设置你如何能做到这一点,通过将DB作为参数传递给路由模块的示例,以及模块返回功能(其中db是可见):
路线。指数
module.exports = function (db) {
return function(req, res, next) {
// you can access db here
}
}
app.js
...
routes = {};
routes.index = require('./routes')(db);
...
我认为如果您尝试创建另一个连接(例如:数据库接口是单例),那么它在连接到数据库以便共享连接的库中相当标准。您可以尝试在您的routes/index.js文件中简单地拨打
db = mongoose.connect('mongodb://localeyes/expressdb');
,并且它可能会使用相同的连接。我建议阅读代码,看看它是否会使用现有的连接,或者如果它每次调用时都尝试重新连接。
编辑:关于第二个想法,你有一个不太可口的选项: 你可以把它推向全球,像这样
global.db = db;
,然后在你的路由/ index.js
变种DB =全球。D b;
谢谢'alessioalex' :) – 2012-01-05 19:52:13