国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

session中間件的使用

這篇具有很好參考價(jià)值的文章主要介紹了session中間件的使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.安裝

npm i express-session

2.導(dǎo)入session中間件

const session=require("express-session")

3.?設(shè)置中間件

說(shuō)明:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-559061.html

  1. 設(shè)置了session的名稱(chēng)為"sid",這是cookie的名稱(chēng),默認(rèn)值是connect.id。
  2. 設(shè)置了一個(gè)密鑰"forever",用于對(duì)session數(shù)據(jù)進(jìn)行加密和簽名。
  3. 設(shè)置了兩個(gè)選項(xiàng):saveUninitialized和resave。saveUninitialized表示是否每次請(qǐng)求自動(dòng)創(chuàng)建cookie用來(lái)存儲(chǔ)session的id,默認(rèn)值為false;resave表示是否在每次請(qǐng)求時(shí)重新保存session,默認(rèn)值為true。這里設(shè)置為true,表示每次請(qǐng)求都會(huì)重新保存session。
  4. 使用了MongoStore作為session存儲(chǔ)方式,將session數(shù)據(jù)存儲(chǔ)到MongoDB數(shù)據(jù)庫(kù)中。需要提供一個(gè)mongoUrl參數(shù),指定數(shù)據(jù)庫(kù)的連接配置。
  5. 設(shè)置了cookie的一些屬性,如httpOnly表示開(kāi)啟后前端無(wú)法通過(guò)JS操作獲取cookie,maxAge表示控制sessionID的過(guò)期時(shí)間,這里設(shè)置為5分鐘。
app.use(session({
    name:"sid",   //設(shè)置cookie的name,默認(rèn)值是connect.id
    secret:"forever",   //參與加密的字符串(又稱(chēng)簽名)
    saveUninitialized:false, //是否每次請(qǐng)求自動(dòng)創(chuàng)建cookie用來(lái)存儲(chǔ)session的id
    resave:true, //是否在每次請(qǐng)求時(shí)重新保存session  20分鐘,40分鐘
    store:MongoStore.create({
        mongoUrl:'mongodb://127.0.0.1:27017/project' //數(shù)據(jù)庫(kù)的連接配置
    }),
    cookie:{
        httpOnly:true, //開(kāi)啟后前端無(wú)法通過(guò)JS操作獲取cookie
        maxAge:1000*60*5 //這一條是控制sessionID的過(guò)期時(shí)間
    } 
})) 

?4.session的讀取

app.get("/cart",(req,res)=>{
    //訪(fǎng)問(wèn)session對(duì)象,從而存儲(chǔ)用戶(hù)的關(guān)鍵信息
    //檢測(cè)session是否存在用戶(hù)數(shù)據(jù)
    if(req.session.username){
       res.send("歡迎來(lái)到購(gòu)物車(chē)頁(yè)面")
    }else{
        res.send("你還沒(méi)有登錄")
    }
})

5.session的銷(xiāo)毀

app.get("/logout",(req,res)=>{
    req.session.destroy(()=>{
        res.send("退出成功")
    })
})

6.源碼展示

const express=require("express")
//導(dǎo)入session中間件
const session=require("express-session")

const MongoStore=require("connect-mongo")

const app=express()

//設(shè)置中間件
app.use(session({
    name:"sid",   //設(shè)置cookie的name,默認(rèn)值是connect.id
    secret:"forever",   //參與加密的字符串(又稱(chēng)簽名)
    saveUninitialized:false, //是否每次請(qǐng)求自動(dòng)創(chuàng)建cookie用來(lái)存儲(chǔ)session的id
    resave:true, //是否在每次請(qǐng)求時(shí)重新保存session  20分鐘,40分鐘
    store:MongoStore.create({
        mongoUrl:'mongodb://127.0.0.1:27017/project' //數(shù)據(jù)庫(kù)的連接配置
    }),
    cookie:{
        httpOnly:true, //開(kāi)啟后前端無(wú)法通過(guò)JS操作獲取cookie
        maxAge:1000*60*5 //這一條是控制sessionID的過(guò)期時(shí)間
    } 
})) 
//首頁(yè)路由
app.get("/",(req,res)=>{
    res.send("home")
})
//登錄
app.get("/login",(req,res)=>{
    // 傳入username=admin&password=admin
    if(req.query.username==='admin' && req.query.password==='admin'){
        //設(shè)置session信息
        req.session.username='admin'
        req.session.sid='258aefccc'
        // 成功響應(yīng)
        res.send("success")
    }else{
        res.send("fail")
    }
   
})
//session的讀取
app.get("/cart",(req,res)=>{
    //訪(fǎng)問(wèn)session對(duì)象,從而存儲(chǔ)用戶(hù)的關(guān)鍵信息
    //檢測(cè)session是否存在用戶(hù)數(shù)據(jù)
    if(req.session.username){
       res.send("歡迎來(lái)到購(gòu)物車(chē)頁(yè)面")
    }else{
        res.send("你還沒(méi)有登錄")
    }
})

//session的銷(xiāo)毀
app.get("/logout",(req,res)=>{
    req.session.destroy(()=>{
        res.send("退出成功")
    })
})

app.listen(3000,()=>{
    console.log("服務(wù)啟動(dòng)成功");
})

到了這里,關(guān)于session中間件的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • node中間件-express框架

    node中間件-express框架

    方式一 : express提供的腳手架,直接創(chuàng)建一個(gè)應(yīng)用的骨架 安裝腳手架npm install -g express-generator 創(chuàng)建項(xiàng)目 express express-demo 安裝依賴(lài)npm install 啟動(dòng)項(xiàng)目 node bin/www 方式二 : 從零搭建自己的express應(yīng)用結(jié)構(gòu); 初始化項(xiàng)目 npm init 安裝express npm i express 導(dǎo)入–創(chuàng)建–監(jiān)聽(tīng) 使用參考文檔 中

    2024年02月16日
    瀏覽(34)
  • node中間件-koa框架

    安裝 npm i koa koa導(dǎo)出的是一個(gè)類(lèi),必須用 new 進(jìn)行創(chuàng)建 koa也是通過(guò)注冊(cè)中間件來(lái)完成請(qǐng)求操作的 koa注冊(cè)的中間件提供了兩個(gè)參數(shù): ctx:上下文(Context)對(duì)象; koa并沒(méi)有像express一樣,將req和res分開(kāi),而是將它們作為ctx的屬性; ctx代表一次請(qǐng)求的上下文對(duì)象; ctx.reque

    2024年02月16日
    瀏覽(34)
  • 使用開(kāi)源中間件:云計(jì)算環(huán)境中的中間件采用開(kāi)源框架,可以減少開(kāi)發(fā)和部署時(shí)間,提高開(kāi)發(fā)效率和可靠性。

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 云計(jì)算是一個(gè)新的分布式計(jì)算模型,具有獨(dú)特的特征。它把資源的虛擬化、彈性伸縮和按需付費(fèi)等能力集成到了一起。這種新型的分布式計(jì)算模式,使得軟件工程師們?cè)诰帉?xiě)應(yīng)用程序時(shí)無(wú)須擔(dān)心服務(wù)器性能,而只需要關(guān)注應(yīng)用本身。同時(shí),云平

    2024年02月04日
    瀏覽(80)
  • Django操作cookie、Django操作session、Django中的Session配置、CBV添加裝飾器、中間件、csrf跨站請(qǐng)求

    1 Django操作cookie 2 Django操作session 3 Django中的Session配置 4 CBV添加裝飾器 5 中間件 6 csrf跨站請(qǐng)求 6.1 使用django官方提供的js文件進(jìn)行csrf認(rèn)證

    2024年02月13日
    瀏覽(18)
  • 第九篇:node靜態(tài)文件服務(wù)(中間件)

    第九篇:node靜態(tài)文件服務(wù)(中間件)

    ????江城開(kāi)朗的豌豆 :個(gè)人主頁(yè) ????個(gè)人專(zhuān)欄? :《 VUE 》?《 javaScript 》 ??? ?個(gè)人網(wǎng)站? :《 江城開(kāi)朗的豌豆?? 》? ???生活的理想,就是為了理想的生活?! 當(dāng)今互聯(lián)網(wǎng)時(shí)代,Node.js 成為了最受歡迎的服務(wù)器端開(kāi)發(fā)平臺(tái)之一。作為一名小白,學(xué)習(xí) Node.js 可能會(huì)讓你感

    2024年02月20日
    瀏覽(18)
  • Django模板,Django中間件,ORM操作(pymysql + SQL語(yǔ)句),連接池,session和cookie, 緩存

    Django模板,Django中間件,ORM操作(pymysql + SQL語(yǔ)句),連接池,session和cookie, 緩存

    今日概要: 模板 中間件 ORM操作(pymysql + SQL語(yǔ)句) session和cookie 緩存(很多種方式) 請(qǐng)求周期 路由系統(tǒng) 最基本路由關(guān)系 動(dòng)態(tài)路由(含正則) 路由分發(fā)不同的app中 + include + 本質(zhì) + name + namespace 視圖 類(lèi)和函數(shù)(FBV和CBV) 參數(shù) request 請(qǐng)求數(shù)據(jù) 自定義數(shù)據(jù) 響應(yīng) 其他知識(shí) 虛擬環(huán)

    2024年02月04日
    瀏覽(26)
  • cool Node后端 中實(shí)現(xiàn)中間件的書(shū)寫(xiě)

    cool Node后端 中實(shí)現(xiàn)中間件的書(shū)寫(xiě)

    1.需求 在node后端中,想實(shí)現(xiàn)一個(gè)專(zhuān)門(mén)鑒權(quán)的文件配置,可以這樣來(lái)解釋 就是 有些接口需要token調(diào)用接口,有些接口不需要使用token 調(diào)用? 這期來(lái)詳細(xì)說(shuō)明一下 ? ? ?什么是中間件中間件顧名思義是指在請(qǐng)求和響應(yīng)中間,進(jìn)行請(qǐng)求數(shù)據(jù)的攔截處理,數(shù)據(jù)校驗(yàn),并且進(jìn)行邏輯處理

    2024年02月20日
    瀏覽(25)
  • 【從零開(kāi)始的rust web開(kāi)發(fā)之路 二】axum中間件和共享狀態(tài)使用

    【從零開(kāi)始的rust web開(kāi)發(fā)之路 二】axum中間件和共享狀態(tài)使用

    第一章 axum學(xué)習(xí)使用 第二章 axum中間件使用 上篇文件講了路由和參數(shù)相應(yīng)相關(guān)的。axum還有個(gè)關(guān)鍵的地方是中間件的使用,這篇文件就來(lái)說(shuō)說(shuō)。 這個(gè)概念跟gin框架的中間件概念一樣,類(lèi)似于springboot項(xiàng)目當(dāng)中的請(qǐng)求過(guò)濾器,在請(qǐng)求過(guò)來(lái)的時(shí)候鏈?zhǔn)綀?zhí)行一些操作。例如鑒權(quán),日志

    2024年02月11日
    瀏覽(21)
  • node 第十四天 基于express的第三方中間件multer node后端處理用戶(hù)上傳文件

    Multer 是一個(gè) node.js 中間件,用于處理 multipart/form-data 類(lèi)型的表單數(shù)據(jù),它主要用于上傳文件。它是寫(xiě)在 busboy 之上的所以非常高效。 前面我們已經(jīng)知道了怎樣利用express提供的靜態(tài)資源處理中間件 express.static() 處理用戶(hù)請(qǐng)求靜態(tài)資源文件(圖片, js, css等) 接下來(lái)學(xué)習(xí)如何處理用

    2024年02月06日
    瀏覽(23)
  • Linux中間件開(kāi)發(fā)

    Linux中間件開(kāi)發(fā)通常是指開(kāi)發(fā)運(yùn)行在Linux操作系統(tǒng)上的中間件軟件,這些軟件通常用于連接不同的應(yīng)用程序或平臺(tái),提供服務(wù)的支持和協(xié)調(diào)。常見(jiàn)的Linux中間件包括Web服務(wù)器、應(yīng)用服務(wù)器、消息隊(duì)列、數(shù)據(jù)庫(kù)中間件等。 中間件開(kāi)發(fā)的主要任務(wù)是實(shí)現(xiàn)中間件的核心功能,例如We

    2024年02月12日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包