亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Node.js開(kāi)發(fā)中的express-session

 更新時(shí)間:2017年05月19日 09:15:10   作者:佚名  
express-session?是基于express框?qū)iT用于處理session的中間件,本篇文章主要介紹了詳解Node.js開(kāi)發(fā)中的express-session,有興趣的可以了解一下<BR>

什么是session

session是保存在服務(wù)器端的會(huì)話。session的典型應(yīng)用場(chǎng)景是用戶登錄某網(wǎng)站之后,將其登錄信息放入session,在以后的每次請(qǐng)求中查詢相應(yīng)的登錄信息以確保該用戶合法。比如購(gòu)物車等等經(jīng)典場(chǎng)景

為什么要使用session

談及session一般是在web應(yīng)用的背景之下,我們知道web應(yīng)用是基于HTTP協(xié)議的,而HTTP協(xié)議恰恰是一種無(wú)狀態(tài)協(xié)議。也就是說(shuō),用戶從A頁(yè)面跳轉(zhuǎn)到B頁(yè)面會(huì)重新發(fā)送一次HTTP請(qǐng)求,而服務(wù)端在返回響應(yīng)的時(shí)候是無(wú)法獲知該用戶在請(qǐng)求B頁(yè)面之前做了什么的。

而正是這種web動(dòng)態(tài)化的需求,給HTTP協(xié)議提出了一個(gè)難題:一個(gè)無(wú)狀態(tài)的協(xié)議怎樣才能關(guān)聯(lián)兩次連續(xù)的請(qǐng)求呢?也就是說(shuō)無(wú)狀態(tài)的協(xié)議怎樣才能滿足有狀態(tài)的需求呢?

此時(shí)有狀態(tài)是必然趨勢(shì)而協(xié)議的無(wú)狀態(tài)性也是木已成舟,因此我們需要一些方案來(lái)解決這個(gè)矛盾,來(lái)保持HTTP連接狀態(tài),于是出現(xiàn)了cookie和session。

session與cookie的關(guān)系

上面提到解決HTTP協(xié)議自身無(wú)狀態(tài)的方式有cookie和session。二者都能記錄狀態(tài),前者是將狀態(tài)數(shù)據(jù)保存在客戶端,后者則保存在服務(wù)端。

安全性

cookie將信息保存在客戶端,如果不進(jìn)行加密的話,無(wú)疑會(huì)暴露一些隱私信息,安全性很差,一般情況下敏感信息是經(jīng)過(guò)加密后存儲(chǔ)在cookie中,但很容易就會(huì)被竊取。而session只會(huì)將信息存儲(chǔ)在服務(wù)端,如果存儲(chǔ)在文件或數(shù)據(jù)庫(kù)中,也有被竊取的可能,只是可能性比cookie小了太多。

Session安全性方面比較突出的是存在的問(wèn)題,這是一種安全威脅,總體來(lái)講,session的安全性要高于cookie。

express框架之session 內(nèi)存存儲(chǔ)

express-session 是基于express框?qū)iT用于處理session的中間件。session的認(rèn)證機(jī)制離不開(kāi)cookie,需要同時(shí)使用cookieParser 中間件。

var express = require('express');
var session = require('express-session');
var cookieParser = require('cookie-parser');

var app = express();

app.use(cookieParser());
app.use(session({
  secret: '12345',
  name: 'testapp',  //這里的name值得是cookie的name,默認(rèn)cookie的name是:connect.sid
  cookie: {maxAge: 80000 }, //設(shè)置maxAge是80000ms,即80s后session和相應(yīng)的cookie失效過(guò)期
  resave: false,
  saveUninitialized: true,
}));


app.get('/awesome', function(req, res){
  
  if(req.session.lastPage) {
    console.log('Last page was: ' + req.session.lastPage + ".");  
  }  
  req.session.lastPage = '/awesome'; //每一次訪問(wèn)時(shí),session對(duì)象的lastPage會(huì)自動(dòng)的保存或更新內(nèi)存中的session中去。
  res.send("You're Awesome. And the session expired time is: " + req.session.cookie.maxAge);
});

app.get('/radical', function(req, res){
  if (req.session.lastPage) {
    console.log('Last page was: ' + req.session.lastPage + ".");  
  }
  req.session.lastPage = '/radical'; 
  res.send('What a radical visit! And the session expired time is: ' + req.session.cookie.maxAge);
});

app.get('/tubular', function(req, res){
  if (req.session.lastPage){
    console.log("Last page was: " + req.session.lastPage + ".");  
  }

  req.session.lastPage = '/tubular';
  res.send('Are you a suffer? And the session expired time is: ' + req.session.cookie.maxAge);
});


app.listen(5000);

一旦我們將express-session中間件用use掛載后,我們可以很方便的通過(guò)req參數(shù)來(lái)存儲(chǔ)和訪問(wèn)session對(duì)象的數(shù)據(jù)。req.session是一個(gè)JSON格式的JavaScript對(duì)象,我們可以在使用的過(guò)程中隨意的增加成員,這些成員會(huì)自動(dòng)的被保存到option參數(shù)指定的地方,默認(rèn)即為內(nèi)存中去。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳細(xì)談?wù)凬odeJS進(jìn)程是如何退出的

    詳細(xì)談?wù)凬odeJS進(jìn)程是如何退出的

    這篇文章主要給大家介紹了關(guān)于NodeJS進(jìn)程是如何退出的相關(guān)資料,主要介紹了導(dǎo)致進(jìn)程退出的三個(gè)因素:主動(dòng)退出;未捕獲的異常、未處理的 promise rejection;未處理的 Event Emitter error 事件 系統(tǒng)信號(hào),需要的朋友可以參考下
    2021-07-07
  • node+multer實(shí)現(xiàn)圖片上傳的示例代碼

    node+multer實(shí)現(xiàn)圖片上傳的示例代碼

    這篇文章主要介紹了node+multer實(shí)現(xiàn)圖片上傳的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Node.js web 應(yīng)用如何封裝到Docker容器中

    Node.js web 應(yīng)用如何封裝到Docker容器中

    這篇文章主要介紹了Node.js web 應(yīng)用如何封裝到Docker容器中,幫助大家更好的學(xué)習(xí)node.js和使用docker容器,感興趣的朋友可以了解下
    2020-09-09
  • Node解決簡(jiǎn)單重復(fù)問(wèn)題系列之Excel內(nèi)容的獲取

    Node解決簡(jiǎn)單重復(fù)問(wèn)題系列之Excel內(nèi)容的獲取

    這篇文章主要給大家介紹了關(guān)于利用Node解決簡(jiǎn)單重復(fù)問(wèn)題系列之Excel內(nèi)容獲取的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧。
    2018-01-01
  • 淺析Node.js實(shí)現(xiàn)HTTP文件下載

    淺析Node.js實(shí)現(xiàn)HTTP文件下載

    本文介紹如何用Node.js來(lái)實(shí)現(xiàn)HTTP文件下載,文章以實(shí)例演示所以很詳細(xì),有需要的小伙伴們可以參考學(xué)習(xí)。
    2016-08-08
  • npm安裝的全局包/工具不能使用,不是內(nèi)部/外部命令的解決方法

    npm安裝的全局包/工具不能使用,不是內(nèi)部/外部命令的解決方法

    這篇文章主要給大家介紹了關(guān)于npm安裝的全局包/工具不能使用,不是內(nèi)部/外部命令的解決方法,文中通過(guò)圖文將解決的方法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • 在Node.js中實(shí)現(xiàn)文件復(fù)制的方法和實(shí)例

    在Node.js中實(shí)現(xiàn)文件復(fù)制的方法和實(shí)例

    這篇文章主要介紹了在Node.js中實(shí)現(xiàn)文件復(fù)制的方法和實(shí)例,使用FS模塊實(shí)現(xiàn),需要的朋友可以參考下
    2014-06-06
  • Node.js模塊全局安裝路徑配置方法

    Node.js模塊全局安裝路徑配置方法

    今天小編就為大家分享一篇Node.js模塊全局安裝路徑配置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Node.JS段點(diǎn)續(xù)傳:Nginx配置文件分段下載功能的實(shí)現(xiàn)方法

    Node.JS段點(diǎn)續(xù)傳:Nginx配置文件分段下載功能的實(shí)現(xiàn)方法

    在Node.JS中可以配置這個(gè)標(biāo)簽來(lái)實(shí)現(xiàn)文件的分段下載。這篇文章給大家介紹了Node.JS段點(diǎn)續(xù)傳:Nginx配置文件分段下載功能的實(shí)現(xiàn)方法,需要的朋友參考下吧
    2018-03-03
  • koa+jwt實(shí)現(xiàn)token驗(yàn)證與刷新功能

    koa+jwt實(shí)現(xiàn)token驗(yàn)證與刷新功能

    這篇文章主要介紹了koa+jwt實(shí)現(xiàn)token驗(yàn)證與刷新功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05

最新評(píng)論