1

koa セッションの有効期限が切れたときにメッセージを記録しようとしています。しかし、失効イベントのリスナーを追加してもうまくいかないようです。

以下はサンプルコードです。セッションの maxAge として 2 分を設定します。

import koa from 'koa';
import serve from 'koa-static';
import route from 'koa-route';
import session from 'koa-session';
import mount from 'koa-mount';

let pub = new koa();
let parse = new koa();
let app = new koa();

app.keys = ['test'];

const CONFIG = {
    key: 'sess',
    maxAge: 2000
};

parse.use(ctx => {
    // ignore favicon
    if (ctx.path === '/test') return;

    let n = ctx.session.views || 0;
    ctx.session.views = ++n;
    ctx.body = n + ' views';
    console.log(ctx.session);
});

pub.use(serve('./public'));

app.use(session(CONFIG,app));
app.on('expired',(key,value,ctx) => console.log(key));

app.use(mount('/',pub));
app.use(mount('/parse',parse));


app.listen(8080);

ここで、ブラウザーで 2 秒後にページを更新するたびに、「ビュー」の値が 1 に戻っていることがわかります。これは、前のセッションが期限切れになったことを意味します。しかし、期限切れのイベントの一部としてのログ ステートメントはヒットしません。イベントリスナーを追加する方法が間違っている可能性があります。誰か助けてくれませんか?

4

1 に答える 1