コメントで述べたように、基本的にExpressは、セッションストアが完全に接続される前に接続を受信しています。解決策は、接続が発生するのを待ってから、アプリケーションがリスニングを開始できるようにすることです。
MongoStoreの作成時にコールバックを使用するか、すでにアクティブな接続を渡すことで、この問題を回避できます。
connect-mongo
の使用例 のコールバック
var sessionStore = new MongoStore({ url: 'someConnectionUrl', db: 'audio-drop' }, function(e) {
var cookieParser = express.cookieParser('waytoblue');
app.use(cookieParser);
app.use(express.session({
store: sessionStore
}));
app.listen();
});
簡単なマングースの例
var mongoose = require('mongoose');
mongoose.connect('localhost', function(e) {
// If error connecting
if(e) throw e;
var sessionStore = new MongoStore({ mongoose_connection: mongoose.connection }),
cookieParser = express.cookieParser('waytoblue');
app.use(cookieParser);
app.use(express.session({
store: sessionStore
}));
app.listen();
});