2014-02-03 2 views
0

В настоящее время, я должен обернуть свои экспресс-маршруты в MongoDB подключения вызова для того, чтобы передать ссылку на базу данных для соответствующей функции:Express.js - справочная база данных Загрузка до маршрутизации

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

Я не уверен, что вы настроены на передачу ссылки или хотите получить доступ к мангусте в своих контроллерах. Для более позднего, тогда нет необходимости передавать ваш 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] 
Смежные вопросы