- ExpressJS 教程
- ExpressJS - 首頁
- ExpressJS - 概述
- ExpressJS - 環境
- ExpressJS - Hello World
- ExpressJS - 路由
- ExpressJS - HTTP 方法
- ExpressJS - URL 構建
- ExpressJS - 中介軟體
- ExpressJS - 模板引擎
- ExpressJS - 靜態檔案
- ExpressJS - 表單資料
- ExpressJS - 資料庫
- ExpressJS - Cookie
- ExpressJS - Session
- ExpressJS - 身份驗證
- ExpressJS - RESTful API
- ExpressJS - 腳手架
- ExpressJS - 錯誤處理
- ExpressJS - 除錯
- ExpressJS - 最佳實踐
- ExpressJS - 資源
- ExpressJS 有用資源
- ExpressJS - 快速指南
- ExpressJS - 有用資源
- ExpressJS - 討論
ExpressJS - Cookie
Cookie 是簡單的、小型的檔案/資料,隨伺服器請求傳送到客戶端並在客戶端儲存。每次使用者重新載入網站時,都會將此 Cookie 與請求一起傳送。這有助於我們跟蹤使用者的操作。
以下是 HTTP Cookie 的多種用途:
- 會話管理
- 個性化(推薦系統)
- 使用者追蹤
要在 Express 中使用 Cookie,我們需要 cookie-parser 中介軟體。要安裝它,請使用以下程式碼:
npm install --save cookie-parser
現在,要在 Express 中使用 Cookie,我們需要 **cookie-parser**。cookie-parser 是一箇中間件,它 *解析附加到客戶端請求物件的 Cookie*。要使用它,我們將在我們的 **index.js** 檔案中引入它;這可以與我們使用其他中介軟體的方式相同。在這裡,我們將使用以下程式碼。
var cookieParser = require('cookie-parser');
app.use(cookieParser());
cookie-parser 解析 Cookie 頭並使用 Cookie 名稱作為鍵填充 **req.cookies** 物件。要設定新的 Cookie,讓我們在您的 Express 應用中定義一條新路由,例如:
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.cookie('name', 'express').send('cookie set'); //Sets name = express
});
app.listen(3000);
要檢查您的 Cookie 是否已設定,只需訪問您的瀏覽器,啟動控制檯並輸入:
console.log(document.cookie);
您將得到類似的輸出(您可能設定了更多 Cookie,可能是由於瀏覽器中的擴充套件程式):
"name = express"
瀏覽器每次查詢伺服器時也會發回 Cookie。要在伺服器控制檯中檢視來自伺服器的 Cookie,請將以下程式碼新增到路由中的伺服器控制檯。
console.log('Cookies: ', req.cookies);
下次您向此路由傳送請求時,您將收到以下輸出。
Cookies: { name: 'express' }
新增帶有過期時間的 Cookie
您可以新增過期的 Cookie。要新增一個過期的 Cookie,只需傳遞一個物件,其中包含將 'expire' 屬性設定為要過期的時間。例如:
//Expires after 360000 ms from the time it is set.
res.cookie(name, 'value', {expire: 360000 + Date.now()});
另一種設定過期時間的方法是使用 **'maxAge'** 屬性。使用此屬性,我們可以提供相對時間而不是絕對時間。以下是此方法的一個示例。
//This cookie also expires after 360000 ms from the time it is set.
res.cookie(name, 'value', {maxAge: 360000});
刪除現有 Cookie
要刪除 Cookie,請使用 clearCookie 函式。例如,如果您需要清除名為 **foo** 的 Cookie,請使用以下程式碼。
var express = require('express');
var app = express();
app.get('/clear_cookie_foo', function(req, res){
res.clearCookie('foo');
res.send('cookie foo cleared');
});
app.listen(3000);
在下一章中,我們將瞭解如何使用 Cookie 管理會話。
