質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

1回答

999閲覧

express-sessionを用いたnode.js環境のサーバー側でtomcatのようなセッションタイムアウトをイベント処理したい

hayash-dev

総合スコア50

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2022/03/01 09:16

これまでtomcat中心でしたが、初めてnode.jsを使用してwebサーバーを1から設計しています。
セッションにはexpress-sessionを使用する想定です。

tomcatでは生成したセッションのタイムアウトをHttpSessionListenerのsessionDestroyed()でハンドリングできますが、node.jsでも同じようにサーバー側でタイムアウトしたセッションを処理したいと考えています。

公式を見ているとSession.destroy(callback)というハンドラで実現できるかと思ったのですが、セッション破棄が完了するとコールバックが呼び出されると説明されています。
サンプルコードにもイベント処理内で// cannot access session hereとあります。

セッションが破棄される前に、セッション内の情報を参照したいと考えています。
具体的には、マスターデータを操作する画面を編集中ユーザーで排他制御を行い、セッションタイムアウトのタイミングで排他を解放するような振る舞いにしたいと思っています。

セッションにアクセス可能な状態でタイムアウト時に処理できる方法はあるものでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

そもそもSession.destroy(callback)はシステム利用者がログアウトボタンを押す等、
明示的にセッションを終了する時にサーバー側で実行すべき処理でした。
呼び出した結果、引数のcallbackが実行される時にはセッションは消えているので、
Session.destroy(callback)で何とかするアプローチが間違っているようです。
一旦、closeして改めて考える事にします。

投稿2022/03/24 09:05

hayash-dev

総合スコア50

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問