Tôi hiện đang có thời gian để lưu các phiên trong MongoDb.NodeJS + Express + Mongo Bộ nhớ phiên
Tôi đã thử Express-session-mongo và connect-mongodb và cả hai cung cấp cho tôi cùng một "500 lỗi máy chủ nội bộ" khi tôi cố gắng tải trang đăng nhập. Điều này khiến tôi nghĩ rằng có thể có một cuộc xung đột với mongoose-auth ở đâu đó.
Dù sao đây là thiết lập của tôi:
app.js:
var MongoStore = require('connect-mongodb');
var MongoDb = require('mongodb').Db;
var Server = require('mongodb').Server;
var db = new MongoDb('myDb', new Server('localhost', 27017, {auto_reconnect: true, native_parser: false}));
app.configure(function() {
app.use(express.logger({format: 'dev'}));
app.set('views', __dirname + '/../views');
app.set('view engine', 'jade');
app.set('view options', { layout: false });
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(mongooseAuth.middleware());
app.use(require('./mysite').middleware());
app.use(express.methodOverride());
});
app.configure('production', function(){
var oneWeek = 657450000;
app.use(express.static(__dirname + '/../public', { maxAge: oneWeek }));
app.use(express.session({ store: new MongoStore({db: db}), secret: 'super secret' }));
app.use(express.errorHandler());
});
// Routes
require('./routing.js');
mongooseAuth.helpExpress(app);
app.listen(3000);
console.log('Express server listening on port %d in %s mode', app.address().port, app.settings.env);
userModel.js
var Schema = mongoose.Schema;
var mongooseTypes = require("mongoose-types");
var mongooseAuth = require('mongoose-auth');
mongooseTypes.loadTypes(mongoose);
var everyauth = require('everyauth')
everyauth.debug = true;
var UserSchema = new Schema({any: {}});
UserSchema.plugin(mongooseAuth, {
everymodule: {
everyauth: {
User: function() {
return User;
}
}
}
, password: {
loginWith: 'email'
, extraParams: {
phone: String
, username: String
}
, everyauth: {
getLoginPath: '/login'
, postLoginPath: '/login'
, loginView: 'account/login.jade'
, getRegisterPath: '/register'
, postRegisterPath: '/register'
, registerView: 'account/register.jade'
, loginSuccessRedirect: '/login/success'
, registerSuccessRedirect: '/register/success'
}
}
});
mongoose.model('User', UserSchema);
User = mongoose.model('User');
Tại thời điểm này trong thời gian tôi thực sự chỉ cố gắng để sử dụng MongoDb làm cửa hàng phiên, nhưng một lần nữa tôi nhận được lỗi 500 không có thông tin nào trong node.js conso khi tôi cố gắng tải trang đăng nhập.
Mọi trợ giúp sẽ được đánh giá cao.
Cảm ơn
Thực ra tôi chỉ thử lại với Express-session-mongo và mặc dù tôi vẫn nhận được hành vi tương tự (cố gắng tải trang đăng nhập không thành công với lỗi 500), tôi vừa kiểm tra trong MongoDb và phiên thực sự là ở đó như mong đợi. – Lancelot
FYI, cũng đã thử kết nối-mongo, cùng một kết quả ... mongoose-auth không chơi đẹp? – Lancelot
Sau khi đào sâu vào mã của mô-đun everyauth, tất cả những gì tôi có thể tìm ra là lỗi 500 xảy ra trong dòng everyauth/lib/modules/password.js >> 47: res.render (xem, địa phương); Thật không may là không giúp ích gì nhiều cho vị trí của tôi ... :( – Lancelot