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服务器(3):代码模块化
Dec 18 NodeJs
Nodejs学习笔记之NET模块
Jan 13 NodeJs
详解nodejs 文本操作模块-fs模块(二)
Dec 22 NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
Apr 01 NodeJs
nodejs 终端打印进度条实例代码
Apr 22 NodeJs
Nodejs回调加超时限制两种实现方法
Jun 09 NodeJs
nodejs开发微信小程序实现密码加密
Jul 11 NodeJs
nodejs对express中next函数的一些理解
Sep 08 NodeJs
nodejs+mongodb aggregate级联查询操作示例
Mar 17 NodeJs
webpack打包nodejs项目的方法
Sep 26 NodeJs
NodeJS http模块用法示例【创建web服务器/客户端】
Nov 05 NodeJs
nodejs处理tcp连接的核心流程
Feb 26 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
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
理解JSON:3分钟课程
2011/10/28 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
python实现查询苹果手机维修进度
2015/03/16 Python
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
有趣的python小程序分享
2017/12/05 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
2018/04/02 Python
Python异常的检测和处理方法
2018/10/26 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
zooplus波兰:在线宠物店
2019/07/21 全球购物
以下的初始化有什么区别
2013/12/16 面试题
庆七一活动方案
2014/01/25 职场文书
校园之星获奖感言
2014/01/29 职场文书
全国道德模范事迹
2014/02/01 职场文书
思想品德课教学反思
2014/02/10 职场文书
慈善捐赠倡议书
2014/08/30 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
实习护士自荐信
2015/03/25 职场文书
结婚通知短信大全
2015/04/17 职场文书
导游词之桂林山水
2019/09/20 职场文书
Python利用folium实现地图可视化
2021/05/23 Python
浅谈Python响应式类库RxPy
2021/06/14 Python
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
2021/09/25 Java/Android