node的Connect使用session、cookie的使用方法

螞蟻小編發表於2017-03-25

下面是Connect中介軟體使用cookie和session的簡單介紹,需要的朋友可以做一下簡單的參考。簡單分為以下幾個步驟。

一.在app.js中進行如下配置:

[JavaScript] 純文字檢視 複製程式碼
var connect = require("connect");
app.use(connect.cookieParser());
app.use(connect.session({ secret: 'jiami', cookie: { maxAge: 60*60*24*1000}}));

二.在控制器中使用:

[JavaScript] 純文字檢視 複製程式碼
//設定
req.session.username="sess_username";
req.session.password="sess_admin";
req.session.your = {username:"sess_name",password:"sess_pwd"};
//使用
console.log(req.session.username);
console.log(req.session.your);

其它方法

[JavaScript] 純文字檢視 複製程式碼
//登出session
req.session.destroy(function(err){
  console.log(err);
})
//重新生成sid
req.session.regenerate(function(err){
  console.log(err);
});

當設定了session後,我們看到cookie中多了條sid,是為了記錄會話ID的。

列印req.cookies和req.session物件。

[JavaScript] 純文字檢視 複製程式碼
console.log(req.cookies);
console.log(req.session);

可以看到session是通過存了個connect.sid的方式來與客戶端會話的,不過session是存在記憶體中的。

三.關於cookie:

設定cookie:

[JavaScript] 純文字檢視 複製程式碼
//設定cookie
res.cookie("user",{username:"cookie_name",password:"cookie_pwd"},{ maxAge: 60*60*24*1000,httpOnly:true, path:'/'});
res.cookie("msg", "使用者名稱或密碼不能為空", {maxAge:60*60*24*1000});

獲取cookie:

[JavaScript] 純文字檢視 複製程式碼
res.cookie("msg", "使用者名稱或密碼不能為空", {maxAge:0});

相關文章