Herokuにプッシュされたアプリにアクセスすると、読み込みに時間がかかりました。ロードされるのを待ちましたが、エラーが発生しました。奇妙なことに、昨日はWebサイトにアクセスできましたが、今日も後でサイトを正常にロードできました。ただし、エラーが発生したときに、Herokuログを確認し、次の警告が表示されました。
2017-10-15T06:19:09.735366+00:00 app[web.1]: > node index.js
2017-10-15T06:19:09.735365+00:00 app[web.1]: > [email protected] start /app
2017-10-15T06:19:09.735367+00:00 app[web.1]:
2017-10-15T06:19:10.515212+00:00 app[web.1]: Warning: connect.session() MemoryStore is not
2017-10-15T06:19:10.515232+00:00 app[web.1]: designed for a production environment, as it will leak
2017-10-15T06:19:10.515233+00:00 app[web.1]: memory, and will not scale past a single process.
コード内の何かが本番用に設計されていないようですが、これがコードのどの部分を参照しているかわかりません。私は承認にpassport.jsを使用しており、それをGoogleとFacebookの戦略に結び付けており、index.jsでexpress-sessionパッケージを使用しています。これは警告が指しているものですか?誰かがこの警告が何を意味するのか説明できますか?
connect-session
HTTPセッションを処理するモジュールを使用しています(明らかに)。この警告は、セッションデータを保存する他の方法(データベース、ファイルなど)を使用するようにモジュールを構成していないために表示されます。これを行うconnect-session
と、セッションストアとしてメモリを使用します。
ただし、これは実稼働環境には適していません。メモリリークが発生しているため、アプリが頻繁にクラッシュします。
さらに重要なことに、クラウド環境(Heroku、Amazon Cloud、Google Cloud Platformなど)ではアプリが複数のインスタンスで実行されるため、正しく機能しません。アプリインスタンスに保存されているセッションデータには、別のインスタンスからアクセスできません。これにより、特にユーザーが繰り返しログアウトすることになります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加