ポート 5000 で実行している Express.js にアプリケーションがあります。最近、何か問題が発生しましたが、Mountain Lion へのアップグレードに関連している可能性があります。わからない。
アプリを簡素化するために、現在 GET ルートのサンプルを 1 つだけセットアップしています。
app.get('/', function(req, res){
console.log('made it here');
res.end('Hey there');
});
何らかの理由で、Web ブラウザー (chrome、safari) 経由で接続しようとすると、複数回接続できなくなります。しかし、ポートに直接 telnet で接続して GET / を発行すると、期待していた応答が得られます (セッションが実行されていないためだと思います)。
また、セッション シークレットを変更すると、ブラウザ経由で 1 回/もう一度接続できます。その後、シークレットを再度変更するまで、その後の更新がルートにヒットすることはありません (そのルートに対して 200 が記録されることはありません)。
セッションをセットアップする方法は次のとおりです。
app.use(express.cookieParser());
var mongoCon = require('connect-mongodb');
var session = express.session({
store: new mongoCon({
db: mongoose.connection.db
, maxAge: 300000
}), secret: 'donut'
});
app.use(session);
編集: セッション ストアに Mongo の代わりに MemoryStore を使用すると、正常に動作します。
繰り返しますが、これは何週間もうまく機能しています。最近、Mountain Lion にアップデートしました。npms も再インストールしましたが、以前と同じバージョンの connect-mongodb、mongoose、express などを実行していることを確認しました。Ubuntuボックスでこれと同じコードベースを実行していますが、問題ないようです。だから多分それはMacの問題です。
これは詳細があまりないクレイジーな質問だと思いますが、ここでちょっと途方に暮れています。何を探すべきかについてのアイデアはありますか?