当前位置: 首页 > 文档资料 > Koa 入门教程 >

Sessions(Sessions)

优质
小牛编辑
126浏览
2023-12-01

HTTP是无状态的,因此为了将请求与任何其他请求相关联,您需要一种在HTTP请求之间存储用户数据的方法。 Cookie和URL参数都是在客户端和服务器之间传输数据的合适方式。 但是,它们在客户端都是可读的。 Sessions解决了这个问题。 您为客户端分配一个ID,并使用该ID进行所有进一步的请求。 与客户端关联的信息存储在链接到此ID的服务器上。

我们需要koa-session,因此使用 - 安装它

npm install --save koa-session

我们将把koa-session中间件放到位。 在这个例子中,我们将使用RAM来存储会话。 切勿在生产环境中使用它。 会话中间件处理所有内容,即创建会话,设置会话cookie以及在上下文对象中创建会话对象。

每当我们再次从同一客户端发出请求时,我们就会将它们的会话信息与我们一起存储(假设服务器未重新启动)。 我们可以为此会话对象添加更多属性。 在以下示例中,我们将为客户端创建一个视图计数器。

var session = require('koa-session');
var koa = require('koa');
var app = koa();
app.keys = ['Shh, its a secret!'];
app.use(session(app));  // Include the session middleware
app.use(function *(){
   var n = this.session.views || 0;
   this.session.views = ++n;
   if(n === 1)
      this.body = 'Welcome here for the first time!';
   else
      this.body = "You've visited this page " + n + " times!";
})
app.listen(3000);

上述代码的作用是,当用户访问该站点时,它会为该用户创建一个新会话并分配一个cookie。 下次用户访问时,将检查cookie并相应地更新page_view会话变量。

现在,如果您运行该应用程序并转到localhost:3000,您将收到以下响应。

会议优先

如果您再次访问该页面,页面计数器将会增加。 在这种情况下,页面刷新了12次。

第12节