2016-07-02 2 views
0

私は、 'connect-flash'ミドルウェアを使用して、高速およびフラッシュメッセージを使用して認証アプリケーションを検討しています。nodejsのセッションにフラッシュメッセージが保存されているのはなぜですか?

フラッシュを接続するためによると:

フラッシュは、メッセージを格納するために使用されるセッションの特別な領域です。メッセージはフラッシュに書き込まれ、ユーザーに表示された後に消去されます。フラッシュは通常、リダイレクトと組み合わせて使用​​され、レンダリングされる次のページでメッセージが使用できるようにします。 フラッシュメッセージはセッションに保存されます。まず、cookieParserとセッションミドルウェアを有効にして、通常通りにセッションを設定します。次に、connect-flashで提供されるフラッシュミドルウェアを使用します。

なぜセッションにフラッシュメッセージが保存されていますか?あまりにも多くのメモリスペースを使用できるので、クッキーのサイズを増やさず、悪くないでしょうか?

答えて

2

なぜセッションにフラッシュメッセージが保存されていますか?

connect-flashには、リクエスト間でフラッシュメッセージを伝播する方法が必要であり、セッションストレージはそのための便利な方法です。

クッキーのサイズを増やすことはできませんか?

一般的には、セッションクッキーには、セッションIDという単一の情報が含まれています。そのIDを使用して、セッションのデータは、セッションから検索されます。これは通常、いくつかの種類のデータベースです。したがって、セッションに格納されるデータの量に関係なく、Cookieのサイズは変わりません。ただし、セッション記憶域はサイズが増加するとになりますが、通常は大きな問題ではありません。

cookie-sessionのようなものを使用している場合は、セッションデータ全体がCookie自体に格納されるため、例外的に例外です(別のセッションストレージを設定する必要はありません)。

+0

ありがとうございます。私は、テンプレートエンジンがjadeやejsなどのサーバーから与えられたメッセージを入力するのを見ました。たとえば、「無効なユーザー名/パスワード」などです。セッションには保存されませんが、http要求後にフロントエンドに表示されます。それはなぜでしょうか? – jdogdvr

+0

@jdogdvrおそらくログインルートがこのような失敗を処理するので、適切なメッセージを表示するテンプレートに "login failed"変数を渡すだけです。 – robertklep

関連する問題