
- Koa.js 教程
- Koa.js - 首頁
- Koa.js - 概述
- Koa.js - 環境
- Koa.js - Hello World
- 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 APIs
- Koa.js - 日誌記錄
- Koa.js - 腳手架
- Koa.js - 資源
- Koa.js 有用資源
- Koa.js - 快速指南
- Koa.js - 有用資源
- Koa.js - 討論
Koa.js - 會話
HTTP是無狀態的,因此為了將一個請求與任何其他請求關聯起來,您需要一種方法來在HTTP請求之間儲存使用者資料。Cookie和URL引數都是將資料在客戶端和伺服器之間傳輸的合適方法。但是,它們都可以在客戶端讀取。會話正是解決了這個問題。您為客戶端分配一個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次。

廣告