私はNodeJSとExpressJSを初めて使用しており、MySQLデータストアとのセッション機能を設定しようとしています。私はそれを呼び出す方法についてはドキュメントを守ってきましたが、コマンドを実行した後、req.sessionは定義されていません。私は、クッキーとセッションをインスタンス化するときに、MySQLデータベースへのアクティブな接続と一般的なクッキーの秘密があることを確認しました。私はMySQLデータストアでExpressJSセッションが動作しない
これを実行しているとき、私はデバッグを有効にしようとした端子$をクリア...すべてのエラーを取得しますが、ここでは、コンソールのデバッグ出力されていないよ。DEBUG =表現-mysqlのセッション*のNPMは
[email protected]スタートを開始しますnode_app
ノード./bin/www
GET /ログイン200 7.458ミリ秒 - 249の
急行-mysqlのセッション:+ 0msと
をセッションストアを作成するログ900000ms + 7MSエクスプレス - :有効期限の間隔を設定するログ: - :
急行-mysqlのセッションは47の
急行-mysqlのセッション+ 3msの
POST/200 40.744ミリ秒、ログインのデフォルトオプションの設定ログMySQLのセッション:ログのクリアの有効期間+ 0ms`
...
var pool = mysql.createPool(options);
と、セッションテーブルにセッションを追加しようとしてもクエリが表示されませんでした。
私のmain.jsファイルに という私のアプリケーションフローがあります。私はすべての要求を一番上に捕らえて、有効なセッションを確認します。見つからなければ、ログインフォームを表示します。
app.get('/*',function(req, res){
if (!req.session) {
var login = require('../js/login_functions');
res.send(login.getLoginForm());
}});
私は、ユーザー名/パスワードが検証されていることを確認してから、私はsession.js必要なファイルとのセッションを作成/ログインにログインフォーム投稿。私は上記の下部にはconsole.log(req.session)を実行すると、ここでコードはsession.js
にvar config = require('../admin/config');
var express = require('express');
var app = module.exports = express();
var db = require('../js/database');
var session = require('express-session');
var MySQLStore = require('express-mysql-session')(session);
module.exports = {
createSession: function(req, callback){
db.getConnection(function(connection){
var session_store_options = {
checkExpirationInterval: 900000,// How frequently expired sessions will be cleared; milliseconds.
expiration: config.SESS_MAX_AGE,// 10 hours session expiration
createDatabaseTable: false,
connectionLimit: config.DB_CONNECTION_LIMIT,
schema: {
tableName: config.SESS_TABLE_NAME,
columnNames: {
session_id: 'session_id',
expires: 'expires',
data: 'user_data'
}
}
};
var session_options = {
key: config.SESS_COOKIE_NAME,
secret: config.SESS_SECRET,
store: new MySQLStore(session_store_options, connection),
cookie: { maxAge: config.SESS_MAX_AGE },
genid: function(req) {
return genuuid() // use UUID for session ID
},
rolling: true,
resave: false,
saveUninitialized: false,
};
if(config.ENV.toLowerCase() === 'prod'){
session_options.cookie.secure = true;
}
app.use(session(session_options));
if(config.DEBUG){
console.log(req.session);
}
callback(session);
});
}
};
、それは未定義出力します。クッキーとdbストアのセッションを呼び出すステップがありませんか?