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(一)--- Node.js简介及安装开发环境
May 20 NodeJs
nodejs中操作mysql数据库示例
Dec 20 NodeJs
nodejs简单实现中英文翻译
May 04 NodeJs
NodeJS整合银联网关支付(DEMO)
Nov 09 NodeJs
NodeJs的fs读写删除移动监听
Apr 28 NodeJs
Nodejs 和Session 原理及实战技巧小结
Aug 25 NodeJs
使用nodeJs来安装less及编译less文件为css文件的方法
Nov 20 NodeJs
webstorm中配置nodejs环境及npm的实例
May 15 NodeJs
nodejs 如何手动实现服务器
Aug 20 NodeJs
nodejs aes 加解密实例
Oct 10 NodeJs
手把手教你如何使用nodejs编写cli命令行
Nov 05 NodeJs
搭建一个nodejs脚手架的方法步骤
Jun 28 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新手上路(十一)
2006/10/09 PHP
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
分享一下贝贝成长进度的php代码
2012/09/14 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
Dojo 学习笔记入门篇 First Dojo Example
2009/11/15 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
js 自定义个性下拉选择框示例
2013/08/20 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
vue-cli脚手架的.babelrc文件用法说明
2020/09/11 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
Python 处理数据的实例详解
2017/08/10 Python
基于Python Numpy的数组array和矩阵matrix详解
2018/04/04 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
美国最大的团购网站:Groupon
2016/07/23 全球购物
一些关于MySql加速和优化的面试题
2014/01/30 面试题
行政人事经理职位说明书
2014/03/05 职场文书
总经理聘用协议书
2015/09/21 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android