nodejs使用express获取get和post传值及session验证的方法


Posted in NodeJs onNovember 09, 2017

本文实例讲述了nodejs使用express获取get和post传值及session验证的方法。分享给大家供大家参考,具体如下:

获取get和post传值

get的传值被放入了一个对象中

req.query

post的传值被放入了

req.body

获取方式如获取对象的内容方式一样。比如,前面传入了一个id的值,nodejs获取就可以req.body.id即可

express的session验证

第一步安装cookie和session的模块,并引入

var session = require('express-session');
var cookieParser = require('cookie-parser');

第二部,express应用cookie和session

app.use(cookieParser());
app.use(session({
  resave: true, // don't save session if unmodified
  saveUninitialized: false, // don't create session until something stored
  secret: 'admin', //密钥
  name: 'testapp', //这里的name值得是cookie的name,默认cookie的name是:connect.sid
  cookie: {
    maxAge: 80000
  } //设置maxAge是80000ms,即80s后session和相应的cookie失效过期
}));

第三步,在请求时,拦截处理

app.use(function(req, res, next) {
  if (!req.session.user) {
    if (req.url == "/login") {
      next(); //如果请求的地址是登录则通过,进行下一个请求
    } else {
      res.redirect('/login');//跳转到登录页面
    }
  } else if (req.session.user) {
    next();//如果已经登录,则可以进入
  }
});

现在访问页面如果没有登录,会自动将路由指向/login页面,最后一步就是在路由里面处理了

app.get('/login', function(req, res) {
  res.render("login");
});
app.post('/login', function(req, res) {
  if (req.body) {//判断时候有传值
    var user = {
      'username': req.body.username//获取用户名并赋值,这里之前可以自己做判断
    };
    req.session.user = user;//赋值session,自动跳转页面
    res.redirect('/admin');
  } else {
    res.redirect('/login');
  }
});
app.get('/logout', function(req, res) {//做的登出页面
  req.session.user = null;
  res.redirect('/login');
});

希望本文所述对大家nodejs程序设计有所帮助。

NodeJs 相关文章推荐
利用NodeJS的子进程(child_process)调用系统命令的方法分享
Jun 05 NodeJs
Nodejs学习笔记之测试驱动
Apr 16 NodeJs
详解nodejs中exports和module.exports的区别
Feb 17 NodeJs
使用 NodeJS+Express 开发服务端的简单介绍
Apr 07 NodeJs
详解nodejs微信公众号开发——3.封装消息响应模块
Apr 10 NodeJs
Nodejs进阶:express+session实现简易登录身份认证
Apr 24 NodeJs
Nodejs进阶之服务端字符编解码和乱码处理
Sep 04 NodeJs
nodejs对express中next函数的一些理解
Sep 08 NodeJs
nodejs连接mysql数据库及基本知识点详解
Mar 20 NodeJs
详解Nodejs get获取远程服务器接口数据
Mar 26 NodeJs
nodejs二进制与Buffer的介绍与使用
Jul 11 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 NodeJs
nodejs操作mongodb的增删改查功能实例
Nov 09 #NodeJs
nodejs中art-template模板语法的引入及冲突解决方案
Nov 07 #NodeJs
Mac 安装 nodejs方法(图文详细步骤)
Oct 30 #NodeJs
浅谈NodeJs之数据库异常处理
Oct 25 #NodeJs
详解使用PM2管理nodejs进程
Oct 24 #NodeJs
nodejs中安装ghost出错的原因及解决方法
Oct 23 #NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 #NodeJs
You might like
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
深入eAccelerator与memcached的区别详解
2013/06/06 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
javascript 全等号运算符使用说明
2010/05/31 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
2013/11/12 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
Angularjs通过指令监听ng-repeat渲染完成后执行脚本的方法
2016/12/31 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
2018/12/22 jQuery
原生js无缝轮播插件使用详解
2020/03/09 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
wxPython之wx.DC绘制形状
2019/11/19 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
html5启动原生APP总结
2020/07/03 HTML / CSS
《散步》教学反思
2014/03/02 职场文书
初中作文评语大全
2014/04/23 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
加油口号大全
2014/06/13 职场文书
车贷收入证明范本
2014/09/14 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
产品质量保证书范本
2015/02/27 职场文书
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技