- Koa.js 教程
- Koa.js - 主页
- Koa.js - 概述
- Koa.js - 环境
- Koa.js - 你好世界
- Koa.js - 生成器
- Koa.js - 路由
- Koa.js - URL 构建
- Koa.js - HTTP 方法
- Koa.js - 请求对象
- Koa.js - 响应对象
- Koa.js - 重定向
- Koa.js - 错误处理
- Koa.js - 级联
- Koa.js - 模板
- Koa.js - 表单数据
- Koa.js - 文件上传
- Koa.js - 静态文件
- Koa.js - Cookie
- Koa.js - 会话
- Koa.js - 身份验证
- Koa.js - 压缩
- Koa.js - 缓存
- Koa.js - 数据库
- Koa.js - RESTful API
- Koa.js - 日志记录
- Koa.js - 脚手架
- Koa.js - 资源
- Koa.js 有用资源
- Koa.js - 快速指南
- Koa.js - 有用的资源
- Koa.js - 讨论
Koa.js - 会话
HTTP 是无状态的,因此为了将一个请求与任何其他请求相关联,您需要一种在 HTTP 请求之间存储用户数据的方法。Cookie 和 URL 参数都是在客户端和服务器之间传输数据的合适方法。然而,它们在客户端都是可读的。Session 正好解决了这个问题。您为客户端分配一个 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 次。