Express+Nodejs 下的登录拦截实现代码


Posted in NodeJs onJuly 01, 2017

原来一直不知道怎么在Express+Nodejs里面添加类似于Struts2的拦截器(因为要使用登录拦截的功能)。

以前一直以为在router这块添加类似一下的转移路由控制权代码的(每个都加很麻烦)

app.get('/show', controllers.checkLogin);//登录验证
app.get('/show', controllers.showList);//实际跳转

又或者是像某些项目里面给每个controller的方法里面加以下这种验证(太繁琐了)

if (!req.session.user) {
    return res.redirect("/login");
  }

最近翻到之前使用session的代码片段,突然有如茅塞顿开啊!!

//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();
});

这尼玛不就是个拦截器吗~??

稍加改造

//登录拦截器
app.use(function (req, res, next) {
  var url = req.originalUrl;
  if (url != "/login" && !req.session.user) {
    return res.redirect("/login");
  }
  next();
});

经过测试,成功了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
Jul 15 NodeJs
轻松创建nodejs服务器(4):路由
Dec 18 NodeJs
nodejs创建web服务器之hello world程序
Aug 20 NodeJs
Nodejs的express使用教程
Nov 23 NodeJs
Nodejs Stream 数据流使用手册
Apr 17 NodeJs
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
Nov 21 NodeJs
nodejs socket服务端和客户端简单通信功能
Sep 14 NodeJs
nodejs爬虫初试superagent和cheerio
Mar 05 NodeJs
详解redis在nodejs中的应用
May 02 NodeJs
Nodejs中的JWT和Session的使用
Aug 21 NodeJs
nodejs图片处理工具gm用法小结
Dec 12 NodeJs
NodeJs 实现简单WebSocket即时通讯的示例代码
Aug 05 NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 #NodeJs
详解nodejs实现本地上传图片并预览功能(express4.0+)
Jun 28 #NodeJs
NodeJS链接MySql数据库的操作方法
Jun 27 #NodeJs
NodeJS自定义模块写法(详解)
Jun 27 #NodeJs
docker中编译nodejs并使用nginx启动
Jun 23 #NodeJs
NodeJs中express框架的send()方法简介
Jun 20 #NodeJs
深入浅析Nodejs的Http模块
Jun 20 #NodeJs
You might like
解析thinkphp中的导入文件标签
2013/06/20 PHP
php关联数组快速排序的方法
2015/04/17 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
vue下载excel的实现代码后台用post方法
2019/05/10 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
python之列表推导式的用法
2019/11/29 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
事业单位分类改革实施方案
2014/03/21 职场文书
倡议书格式模板
2014/05/13 职场文书
2014年幼儿园班级工作总结
2014/12/17 职场文书
教师聘用意向书
2015/05/11 职场文书
假期读书倡议书3篇
2019/08/19 职场文书
python+opencv实现视频抽帧示例代码
2021/06/11 Python
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技