在文件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