Express+Nodejs 下的登錄攔截實(shí)現(xiàn)代碼
原來(lái)一直不知道怎么在Express+Nodejs里面添加類似于Struts2的攔截器(因?yàn)橐褂玫卿洈r截的功能)。
以前一直以為在router這塊添加類似一下的轉(zhuǎn)移路由控制權(quán)代碼的(每個(gè)都加很麻煩)
app.get('/show', controllers.checkLogin);//登錄驗(yàn)證 app.get('/show', controllers.showList);//實(shí)際跳轉(zhuǎn)
又或者是像某些項(xiàng)目里面給每個(gè)controller的方法里面加以下這種驗(yàn)證(太繁瑣了)
if (!req.session.user) { return res.redirect("/login"); }
最近翻到之前使用session的代碼片段,突然有如茅塞頓開(kāi)?。?!
//session app.use(function (req, res, next) { var err = req.flash('error'); var success = req.flash('success'); res.locals({ user:req.session.user, navSide:req.session.navSide, error:err.length ? err : null, success:success.length ? success : null }); next(); });
這尼瑪不就是個(gè)攔截器嗎~囧~
稍加改造
//登錄攔截器 app.use(function (req, res, next) { var url = req.originalUrl; if (url != "/login" && !req.session.user) { return res.redirect("/login"); } next(); });
經(jīng)過(guò)測(cè)試,成功了
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- nodejs中Express與Koa2對(duì)比分析
- 使用nodejs+express實(shí)現(xiàn)簡(jiǎn)單的文件上傳功能
- nodejs使用express獲取get和post傳值及session驗(yàn)證的方法
- Nodejs+express+ejs簡(jiǎn)單使用實(shí)例代碼
- 詳解nodejs中express搭建權(quán)限管理系統(tǒng)
- nodejs對(duì)express中next函數(shù)的一些理解
- nodejs 圖解express+supervisor+ejs的用法(推薦)
- 基于nodejs+express4.X實(shí)現(xiàn)文件下載的實(shí)例代碼
- 詳解nodejs的express如何自動(dòng)生成項(xiàng)目框架
- nodeJS(express4.x)+vue(vue-cli)構(gòu)建前后端分離實(shí)例(帶跨域)
- nodejs+express搭建多人聊天室步驟
相關(guān)文章
Node.js文件系統(tǒng)fs擴(kuò)展fs-extra說(shuō)明
這篇文章主要介紹了Node.js文件系統(tǒng)fs擴(kuò)展fs-extra說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08nodejs+websocket實(shí)時(shí)聊天系統(tǒng)改進(jìn)版
這篇文章主要介紹了nodejs+websocket實(shí)時(shí)聊天系統(tǒng)的改進(jìn)版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05Node.js調(diào)試技術(shù)總結(jié)分享
Node.js是一個(gè)可以快速構(gòu)建網(wǎng)絡(luò)服務(wù)及應(yīng)用的平臺(tái)。該平臺(tái)的構(gòu)建是基于Chrome's JavaScript runtime,也就是說(shuō),實(shí)際上它是對(duì)Google V8引擎(應(yīng)用于Google Chrome瀏覽器)進(jìn)行了封裝。 今天介紹Node.js調(diào)式目前有幾種技術(shù),需要的朋友可以參考下。2017-03-03Node.js使用對(duì)話框ngDialog的示例代碼
本篇文章主要介紹了Node.js使用對(duì)話框ngDialog的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Node.js實(shí)現(xiàn)http請(qǐng)求服務(wù)與Mysql數(shù)據(jù)庫(kù)操作方法詳解
這篇文章主要介紹了Node.js實(shí)現(xiàn)http請(qǐng)求服務(wù)與Mysql數(shù)據(jù)庫(kù)操作方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-10-10NVM管理Node.js實(shí)現(xiàn)不同版本Angular環(huán)境切換
Node Version Manager(NVM)是一個(gè)用于管理多個(gè)Node.js版本的工具,它允許用戶在同一臺(tái)機(jī)器上安裝和使用多個(gè)Node.js版本,本文將給大家介紹NVM管理Node.js實(shí)現(xiàn)不同版本Angular環(huán)境切換的流程步驟,需要的朋友可以參考下2024-05-05