Nó kết thúc là sự cố của các mô-đun khác nhau:connect-session-mongo / express-session-mongo / connect-mongo, sử dụng connect 2.0.1 và Express sử dụng connect 1.8.5.
Rõ ràng cuộc xung đột phụ thuộc ở đây đã ngăn các mô-đun lưu trữ phiên truy cập vào thuộc tính 'req.secret'.
Để làm cho nó hoạt động, tôi đã kết thúc bằng cách sử dụng mô-đun connect-mongodb vẫn đang sử dụng kết nối 1.8.5, giống như Express.
Lý do tôi không thể làm cho kết nối mongodb hoạt động trước đó là do lỗi người dùng, tôi đã cố gắng quá sức để sử dụng sao chép / dán từ các ví dụ trực tuyến thay vì đầu của tôi.
Đây là mã cấu hình đã hoạt động với tôi với connect-mongodb:
var Session = require('connect-mongodb');
app.configure('production', function(){
var oneWeek = 657450000;
app.use(express.static(__dirname + '/../public', { maxAge: oneWeek }));
var session = express.session({
store: new Session({
url: 'mongodb://localhost:27017/test',
maxAge: 300000
}),
secret: 'superTopSecret'
});
app.use(session);
app.use(mongooseAuth.middleware());
app.use(require('./mySite').middleware());
app.use(express.methodOverride());
app.use(express.errorHandler());
});
Hy vọng điều này sẽ giúp bất kỳ ai khác gặp phải vấn đề này. Nếu bạn có bất kỳ đề xuất / cải tiến nào về giải pháp này, tôi rất vui khi được nghe. :)