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中自定义事件实例
Jun 20 NodeJs
详解nodeJS中读写文件方法的区别
Mar 06 NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
nodejs个人博客开发第二步 入口文件
Apr 12 NodeJs
深入学习nodejs中的async模块的使用方法
Jul 12 NodeJs
nodejs+mongodb+vue前后台配置ueditor的示例代码
Jan 02 NodeJs
使用koa-log4管理nodeJs日志笔记的使用方法
Nov 30 NodeJs
nodeJS进程管理器pm2的使用
Jan 09 NodeJs
用Electron写个带界面的nodejs爬虫的实现方法
Jan 29 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 NodeJs
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
Aug 20 NodeJs
NodeJS开发人员常见五个错误理解
Oct 14 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
在PHP中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
2013/06/29 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
基于canvas粒子系统的构建详解
2017/08/31 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
Python测试人员需要掌握的知识
2018/02/08 Python
python 文件查找及内容匹配方法
2018/10/25 Python
简单了解python代码优化小技巧
2019/07/08 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
2019/11/15 Python
python 爬取疫情数据的源码
2020/02/09 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
Python restful框架接口开发实现
2020/04/13 Python
python如何求圆的面积
2020/07/01 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
党校学习思想汇报
2014/01/06 职场文书
企业文明单位申报材料
2014/05/16 职场文书
住院医师规范化培训实施方案
2014/06/12 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
学校食堂食品安全责任书
2014/07/28 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
导游词之张家界
2019/10/31 职场文书