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入门详解(多篇文章结合)
Mar 07 NodeJs
将nodejs打包工具整合到鼠标右键的方法
May 11 NodeJs
跟我学Nodejs(三)--- Node.js模块
May 25 NodeJs
nodejs URL模块操作URL相关方法介绍
Mar 03 NodeJs
详解Windows下安装Nodejs步骤
May 18 NodeJs
NodeJs使用Mysql模块实现事务处理实例
May 31 NodeJs
nodejs动态创建二维码的方法
Aug 12 NodeJs
Mac 安装 nodejs方法(图文详细步骤)
Oct 30 NodeJs
NodeJs搭建本地服务器之使用手机访问的实例讲解
May 12 NodeJs
nodejs中内置模块fs,path常见的用法说明
Nov 07 NodeJs
nodejs中的异步编程知识点详解
Jan 17 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
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
一些常用的php函数
2006/12/06 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
JavaScript获取页面上某个元素的代码
2011/03/13 Javascript
页面使用密码保护代码
2013/04/10 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
2013/08/26 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
Python实现登陆文件验证方法
2018/10/06 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
python assert的用处示例详解
2019/04/01 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
作弊检讨书1000字
2014/02/01 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
感谢信格式范文
2015/01/22 职场文书
选购到合适的激光打印机
2022/04/21 数码科技