目前,我必须在mongoDb connect调用中包装我的快速路由,以便将数据库引用传递给相应的函数:
mongoClient.connect(mongourl,function(err,database){
if (err){
throw err;
}
database = database.db('quac');
app.get('/', routes.index(database));
app.post('/add/:title', routes.add(database));
});
我想避免这种包装,而是首先加载数据库引用。
实现这一目标的最佳做法是什么?
答案 0 :(得分:0)
我不确定您是否已设置传递引用或只想在控制器中访问mongoose。对于后者,则无需传递db ref - 只需要mongoose,它将检测当前连接。
所以在你的app.js中:
var mongoose = require('mongoose');
// Connect Mongo database
mongoose.connect(config.db.mongo.connection, config.db.mongo.options);
// Require your models
require("../models/something");
require("../models/other");
然后在你的控制器中:
var mongoose = require('mongoose'),
Something = mongoose.model('Something'),
Other = mongoose.model('Other');
...
Other.findById(...)
如果由于某种原因您需要连接本身,则可以使用:
mongoose.connections[0]