現在、MongoDbにセッションを保存しようとしています。NodeJS + Express + Mongoセッションストレージ
私はexpress-session-mongoとconnect-mongodbを試してみましたが、両方ともログインページを読み込もうとすると「500 internal server error」と同じです。それでどこかにmongoose-authと葛藤があるかもしれないと思うかもしれません。とにかくここ
は私の設定です:
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');
この瞬間、私は本当にただしようとしている時にセッションストアとしてMongoDbを使用することができますが、再びnode.js consoに500エラーの情報があります。私はログインページを読み込もうとします。
ご協力いただければ幸いです。それは、様々なモジュールの問題点終了
おかげ
実際に私はexpress-session-mongoで再試行しましたが、私はまだ同じ動作をしていますが(ログインページが500エラーで失敗してしまいました)、私はMongoDbをチェックインしました。そこに期待通り。 – Lancelot
FYI、connect-mongo、同じ結果を試してみました... mongoose-authはうまくいきませんか? – Lancelot
everyauthモジュールのコードを掘り下げた後、私は、すべてのauth/lib/modules/password.jsで500エラーが発生したことを知ることができました。>>行47: res.render(view、locals); 残念ながら、私の立場からあまりにも助けにはなりません... :( – Lancelot