node.js 中間件express-session使用詳解

這篇文章主要給你們介紹了node.js中間件express-session使用的相關資料,文中介紹的很是詳細,對你們具備必定的參考學習價值,須要的朋友們下面來一塊兒看看吧。前端

本文介紹的關於node.js中間件express-session的相關內容,分享出來供你們從參考學習,下面來一塊兒看看詳細的介紹:node

1、爲何使用session

session運行在服務器端,當客戶端第一次訪問服務器時,能夠將客戶的登陸信息保存。
當客戶訪問其餘頁面時,能夠判斷客戶的登陸狀態,作出提示,至關於登陸攔截。
session能夠和Redis或者數據庫等結合作持久化操做,當服務器掛掉時也不會致使某些客戶信息(購物車)丟失。數據庫

2、session的工做流程:

當瀏覽器訪問服務器併發送第一次請求時,服務器端會建立一個session對象,生成一個相似於key,value的鍵值對, 而後將key(cookie)返回到瀏覽器(客戶)端,瀏覽器下次再訪問時,攜帶key(cookie),找到對應的session(value) 。 客戶的信息都保存在session中。express

3、express-session的經常使用參數:

secret:一個String類型的字符串,做爲服務器端生成session的簽名。
name:返回客戶端的key的名稱,默認爲connect.sid,也能夠本身設置。
resave:(是否容許)當客戶端並行發送多個請求時,其中一個請求在另外一個請求結束時對session進行修改覆蓋並保存。
默認爲true。可是(後續版本)有可能默認失效,因此最好手動添加。
saveUninitialized:初始化session時是否保存到存儲。默認爲true, 可是(後續版本)有可能默認失效,因此最好手動添加。
cookie:設置返回到前端key的屬性,默認值爲{ path: ‘/', httpOnly: true, secure: false, maxAge: null }瀏覽器

  • express-session的一些方法:服務器

  • Session.destroy() :刪除session,當檢測到客戶端關閉時調用。cookie

  • Session.reload() :當session有修改時,刷新sessionsession

  • Session.regenerate() :將已有session初始化。併發

  • Session.save() :保存sessionapp

4、示例demo

//app.js中添加以下代碼(已有的不用添加)
var express = require('express');
var cookieParser = require('cookie-parser');
var session = require('express-session');
 
app.use(cookieParser('sessiontest'));
app.use(session({
 secret: 'sessiontest',//與cookieParser中的一致
 resave: true,
 saveUninitialized:true
}));
//修改router/index.js,第一次請求時咱們保存一條用戶信息。
router.get('/', function(req, res, next) {
 var user={
  name:"Chen-xy",
  age:"22",
  address:"bj"
 }
 req.session.user=user;
 res.render('index', {
  title: 'the test for nodejs session' ,
  name:'sessiontest'
 });
});
//修改router/users.js,判斷用戶是否登錄。
router.get('/', function(req, res, next) {
 if(req.session.user){
  var user=req.session.user;
  var name=user.name;
  res.send('你好'+name+',歡迎來到個人家園。');
 }else{
  res.send('你尚未登陸,先登陸下再試試!');
 }
});

總結
好了,以上就是這篇文章的所有內容了,但願本文的內容對你們的學習或者工做能帶來必定的幫助,若是有疑問你們能夠留言交流,謝謝你們對腳本之家的支持。
原文連接:http://blog.csdn.net/u0126795...

相關文章
相關標籤/搜索