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获取本机内网和外网ip地址的实现代码
Jun 01 NodeJs
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
Nov 20 NodeJs
nodejs教程之制作一个简单的文章发布系统
Nov 21 NodeJs
Nodejs实现的一个静态服务器实例
Dec 06 NodeJs
nodejs中使用多线程编程的方法实例
Mar 24 NodeJs
iPhone手机上搭建nodejs服务器步骤方法
Jul 06 NodeJs
nodejs创建web服务器之hello world程序
Aug 20 NodeJs
Nodejs抓取html页面内容(推荐)
Aug 11 NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 NodeJs
详解nodejs express下使用redis管理session
Apr 24 NodeJs
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
May 13 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 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
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
php获取手机端的号码以及ip地址实例代码
2018/09/12 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
js资料toString 方法
2007/03/13 Javascript
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
2017/06/01 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
Python实现partial改变方法默认参数
2014/08/18 Python
Win10下Python环境搭建与配置教程
2016/11/18 Python
浅谈flask源码之请求过程
2018/07/26 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
python线性插值解析
2020/07/05 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
新电JAVA笔试题目
2014/08/31 面试题
Shell编程面试题
2012/05/30 面试题
爽歪歪广告词
2014/03/20 职场文书
微笑服务标语
2014/06/24 职场文书
效能风暴心得体会
2014/09/04 职场文书
警察群众路线整改措施
2014/09/26 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
教师节座谈会主持词
2015/07/03 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
python通过函数名调用函数的几种方法总结
2021/06/07 Python
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python
Python基础之条件语句详解
2021/06/16 Python
Vue ECharts实现机舱座位选择展示功能
2022/05/15 Vue.js
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js