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开发环境配置与使用
Nov 17 NodeJs
nodejs中使用多线程编程的方法实例
Mar 24 NodeJs
windows下安装nodejs及框架express
Aug 07 NodeJs
Nodejs搭建wss服务器教程
May 24 NodeJs
nodejs集成sqlite使用示例
Jun 05 NodeJs
浅谈nodejs中的类定义和继承的套路
Jul 26 NodeJs
windows系统下更新nodejs版本的方案
Nov 24 NodeJs
nodejs微信扫码支付功能实现
Feb 17 NodeJs
Nodejs模块载入运行原理
Feb 23 NodeJs
nodeJS进程管理器pm2的使用
Jan 09 NodeJs
nodejs检测因特网是否断开的解决方案
Apr 17 NodeJs
nodejs利用readline提示输入内容实例代码
Jul 15 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
玩转图像函数库―常见图形操作
2006/09/03 PHP
延长phpmyadmin登录时间的方法
2011/02/06 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
利用Python检测URL状态
2019/07/31 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
2020/09/21 Python
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
大学新生军训个人的自我评价
2013/10/03 职场文书
后勤园长自我鉴定
2013/10/17 职场文书
音乐系毕业生自荐信
2013/10/27 职场文书
大学生入党自我鉴定
2013/10/31 职场文书
学前班教师的自我鉴定
2013/12/05 职场文书
销售顾问岗位职责
2014/02/25 职场文书
个人专业技术总结
2015/03/05 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书