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 win7下安装方法
May 24 NodeJs
NodeJS学习笔记之Connect中间件模块(一)
Jan 27 NodeJs
nodejs调用cmd命令实现复制目录
May 04 NodeJs
windows下安装nodejs及框架express
Aug 07 NodeJs
nodejs简单实现操作arduino
Sep 25 NodeJs
nodejs实例解析(输出hello world)
Jan 03 NodeJs
nodejs根据ip数组在百度地图中进行定位
Mar 06 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
Nodejs--post的公式详解
Apr 29 NodeJs
nodejs微信扫码支付功能实现
Feb 17 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 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程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
PHP 提取图片img标记中的任意属性的简单实例
2013/12/10 PHP
php配合jquery实现增删操作具体实例
2013/12/12 PHP
jquery.validate分组验证代码
2011/03/17 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
代码整洁之道(重构)
2018/10/25 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
Python构造自定义方法来美化字典结构输出的示例
2016/06/16 Python
一个基于flask的web应用诞生(1)
2017/04/11 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
python微信公众号之关键词自动回复
2018/06/15 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
医德医风演讲稿
2014/05/20 职场文书
小学班主任培训方案
2014/06/04 职场文书
中秋节慰问信
2015/02/15 职场文书
《藏戏》教学反思
2016/02/23 职场文书
python批量创建变量并赋值操作
2021/06/03 Python
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
MySQL数据库简介与基本操作
2022/05/30 MySQL