nodejs とセッションで奇妙な問題が発生しています。問題を session.save 関数まで追跡しました。
TypeError: Cannot read property 'sessionStore' of undefined
at Session.save (C:\Program Files\nodejs\node_modules\express\node_modules\connect\lib\middleware\session\session.js:65:11);
//Code in connect session module where this.req gets its value
var Session = module.exports = function Session(req, data) {
Object.defineProperty(this, 'req', { value: req });
Object.defineProperty(this, 'id', { value: req.sessionID });
if ('object' == typeof data) utils.merge(this, data);
console.log("SESSION CREATED", typeof this.req, "VS" , typeof req);
//outputs SESSION CREATED undefined VS object
};
//The session.save function, here the this.req is undefined and it causes the error
Session.prototype.save = function(fn){
this.req.sessionStore.set(this.id, this, fn || function(){});
return this;
};
何が原因でしょうか?
クイック編集:
この問題は、外部の api(box2d) ファイルが必要な場合にのみ発生します。var Box2D = require('./box2d.js'); そのファイルは動作するデモが付属しているため動作し、私のコードでも動作しましたが、ノードを再起動した後...何らかの理由でセッションが中断されました。ソケットはまだ機能します。
ファイルはここにあります (短縮された google docs) box2D 競合する可能性のあるキーワードを検索しましたが、疑わしいものは何も表示されませんでした。そのファイルはかなり大きいです...それは問題でしょうか?