Egg 設定與獲取Session

2021-10-04 08:54:42 字數 1540 閱讀 9352

session是另一種記錄客戶狀態的機制,不同的是 c

ookie

儲存在客戶端瀏覽器中,而session 儲存在伺服器上。

當瀏覽器訪問伺服器並傳送第一次請求時,伺服器端會建立乙個 session 物件,生成乙個類似於 key,value 的鍵值對, 然後將 key(cookie)返回到瀏覽器(客戶)端,瀏覽器下次再訪問時,攜帶 key(cookie),找到對應的 session(value)。

session的設定**如下:

'use strict';

const controller = require('egg').controller;

class homecontroller extends controller

// 設定session的過期時間(不建議用這樣的方式,建議在config中設定)

// this.ctx.session.maxage=5000;

await this.ctx.render('home');

}}module.exports = homecontroller;

session的配置和cookie基本是一樣的,可以使用cookie裡面的配置,配置選項在官網有非常全面的介紹,常見的配置選項如下:

// config.default.js

'use strict';

const config = exports = {};

// use for cookie sign key, should change to your own and keep security

// 配置session

config.session =

// 配置模板引擎

config.view = ,

};return config;

};

session的獲取**如下:

'use strict';

const controller = require('egg').controller;

class newscontroller extends controller );

}}module.exports = newscontroller;

cookie

和 session

區別如下:

1. cookie資料存放在客戶的瀏覽器上,

session

資料放在伺服器上。

2. cookie

相比 session

沒有 session

安全,別人可以分析存放在本地的cookie

並進行cookie欺騙。

3. session

會在一定時間內儲存在伺服器上,訪問增多時會比較占用伺服器的效能,考慮到減輕伺服器效能方面,應當使用cookie。

4. 單個

cookie

儲存的資料不能超過

4k,很多瀏覽器都限制乙個站點最多儲存

20 個

cookie。

Egg 中設定與獲取Cookie

http 是無狀態協議,簡單地說,當你瀏覽了乙個頁面,然後轉到同乙個 的另乙個頁面,伺服器無法認識到這是同乙個瀏覽器在訪問同乙個 每一次的訪問,都是沒有任何關係的。cookie 是儲存於訪問者的計算機中的變數,可以讓同乙個瀏覽器訪問同乙個網域名稱的時候共享資料 在egg中設定與獲取cookie比較方...

egg獲取上傳檔案

官方文件 egg獲取上傳檔案 官方有倆種模式,file和stream,我用的是stream,簡單示例 controller const controller require egg controller const fs require fs const path require path clas...

Egg 中獲取遠端的資料

egg 提供了 this.ctx.curl 方法獲取遠端的資料,讓我們可以輕鬆的實現乙個簡單的爬蟲功能,以下是乙個使用的具體示例。首先在config資料夾下的 config.default.js 中定義要獲取資料的網域名稱。use strict const config exports use fo...