0

第一次加载时,它显示正确。之后,每次更新都会获得 2 个页面浏览量,而不是一个。

const Koa = require('koa');
const session = require('koa-session');
const app = new Koa();
app.keys = ['Shh, its a secret!'];
app.use(session(app));

app.use(async function(ctx) {
  let n = ctx.session.views || 0;
  ctx.session.views = ++n;
  console.log(`times= ${n}`);

  if (n === 1) {
    ctx.body = 'Welcome here for the first time!';
  } else {
  ctx.body = `You visited this page ${n} times!`;
  }
});

app.listen(3000);
4

1 回答 1

0

实际上,我现在测试它,它似乎工作正常。您必须考虑的是,在浏览器中输入 URL 时,某些浏览器已经尝试预加载内容。这也发生在这里。

然后我试图确定它按预期工作:我关闭了 node/koa 应用程序,然后在浏览器中清除了该端的会话(Developertools - Storage - Sessions),再次启动 node/koa 应用程序然后打开客户端点击重新加载几次。在这里,在服务器端,我消化了正确的输出:

times= 1
times= 2
times= 3
times= 4
times= 5

在客户端,输出也是正确的。

于 2017-06-29T06:20:15.977 回答