1

セッションに値を格納するには、コールバックを指定せずにreq.session.key=valueを呼び出すだけであることに気付きました。connect-mysqlモジュールを使用して、mysqlをセッションストレージアダプターとして設定しました。だから私は、データベースで更新されているセッションに値を保存するたびに、これに関連付けられたコールバックがあるべきではないかと考えていますか?しかし、私が見るところはどこでも、人々はそれを同期して喜んで使用しています。誰かがこれが事実である理由を説明できますか?ありがとう。

4

1 に答える 1

1

sessionミドルウェアは、実際には、変更ごとにすぐにではなく、リクエストごとに2回だけデータストアと対話します。

  1. リクエストの開始時に一括でStore#get()取得する場合。Sessionソース
  2. Store#set()(via )を使用して、リクエストの最後に一括でSession#save()永続化します。Sessionソース

これらのステップの間で、への変更をsession同期的に行うことができます。それらは、呼び出される前res.end()または同様の(res.render()、、res.json()など)が呼び出される前に実行する必要があります。

于 2012-07-29T13:11:34.397 に答える