node.js+expressでsession管理をconnect-memcachedが使えず、connect-mysql-sessionにしました。
半月前に以下の記事を書きました。
http://localhost:3000/からのレスポンスがやたら遅い。
その後、ちょこちょこトライしていたのですが、結局はconnect-memcachedが使えず、connect-mysql-sessionに変更するとあっさり使えたので、もうこれにしよう・・・。
というのが、現時点の話です。加えて、connect-mysql-sessionもgitを丸写ししただけなので、これから掘り下げます。
アーカイブのため、「connect-memcachedのコードと現象とエラー」、「connect-mysql-sessionのコード」を以下に書きます。(コードはgitから抜粋)
connect-memchached
コード
var express = require('express');
var MemcachedStore = require('connect-memcached')(express);
...
app.use(express.session({
secret: 'CatOnTheKeyboard',
store: new MemcachedStore
}));
...
※詳細はこちらを参照してください(https://github.com/balor/connect-memcached)。
現象
レスポンスがしばらく返ってきません。画面が表示される場合もありますが、次のようなエラーメッセージを確認しました。
エラーメッセージ
MemcachedStore::Issue @ 127.0.0.1:11211: Error: connect ECONNREFUSED, undefined attempts left
connect-mysql-session
コード(app.js)
var express = require('express'),
MySQLSessionStore = require('connect-mysql-session')(express);
...
app.use(express.session({
store: new MySQLSessionStore("dbname", "user", "password", {
}),
secret: "keyboard cat"
}));
...
※詳細はこちらを参照してください(https://github.com/CarnegieLearning/connect-mysql-session)。