В конце я использую немного каждого ответа, который был дан ранее:
- я переключился с connect-mongodb на модуль connect-mongo
- Я использую общий объект conf для хранения моих данных конфигурации
- есть два соединения с БД, потому что мне легче их обрабатывать (возможно, изменить позже, если / когда появится новая версия mongoose / express)
Требования:
var express = require('express'),
MongoStore = require('connect-mongo')(express),
mongo = require('mongoose');
объект conf:
var conf = {
db: {
db: 'myDb',
host: '192.168.1.111',
port: 6646, // optional, default: 27017
username: 'admin', // optional
password: 'secret', // optional
collection: 'mySessions' // optional, default: sessions
},
secret: '076ee61d63aa10a125ea872411e433b9'
};
тогда я могу настроить его так:
app.configure(function(){
// ...
app.use(express.cookieParser());
app.use(express.session({
secret: conf.secret,
maxAge: new Date(Date.now() + 3600000),
store: new MongoStore(conf.db)
}));
// important that this comes after session management
app.use(app.router);
// ...
});
и, наконец, подключитесь к mongodb во второй раз, используя mongoose:
var dbUrl = 'mongodb://';
dbUrl += conf.db.username + ':' + conf.db.password + '@';
dbUrl += conf.db.host + ':' + conf.db.port;
dbUrl += '/' + conf.db.db;
mongo.connect(dbUrl);
mongo.connection.on('open', function () {
app.listen(3000);
});