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 Web应用监听sock文件实例
Feb 18 NodeJs
nodejs搭建本地服务器并访问文件的方法
Mar 03 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
nodejs中art-template模板语法的引入及冲突解决方案
Nov 07 NodeJs
详解IWinter 一个路由转控制器的 Nodejs 库
Nov 15 NodeJs
nodeJs爬虫的技术点总结
May 13 NodeJs
NodeJS 中Stream 的基本使用
Jul 30 NodeJs
Nodejs实现多文件夹文件同步
Oct 17 NodeJs
nodejs中方法和模块用法示例
Dec 24 NodeJs
nodejs提示:cross-device link not permitted, rename错误的解决方法
Jun 10 NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 NodeJs
nodejs开发一个最简单的web服务器实例讲解
Jan 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
PHP5中虚函数的实现方法分享
2011/04/20 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
JavaScript的类型简单说明
2010/09/03 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
跟我学习javascript的定时器
2015/11/19 Javascript
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
2016/11/17 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
详解javascript 变量提升(Hoisting)
2019/03/12 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
微信小程序实现canvas分享朋友圈海报
2020/06/21 Javascript
[07:37]DOTA2-DPC中国联赛2月2日Recap集锦
2021/03/11 DOTA
Sanic框架安装与简单入门示例
2018/07/16 Python
Python的UTC时间转换讲解
2019/02/26 Python
连接pandas以及数组转pandas的方法
2019/06/28 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
Python箱型图处理离群点的例子
2019/12/09 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
Python中格式化字符串的四种实现
2020/05/26 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
HTML5 video播放器全屏(fullScreen)方法实例
2015/04/24 HTML / CSS
伦敦一家非常流行的时尚精品店:Oxygen Boutique
2017/01/15 全球购物
基本款天堂:Everlane
2017/05/13 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
《灯光》教学反思
2014/02/08 职场文书
网络优化专员求职信
2014/05/04 职场文书
村容村貌整治方案
2014/05/21 职场文书
委托书格式
2014/08/01 职场文书
退货证明模板
2015/06/23 职场文书
演讲比赛通讯稿
2015/07/18 职场文书