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入门详解(多篇文章结合)
Mar 07 NodeJs
轻松创建nodejs服务器(6):作出响应
Dec 18 NodeJs
NodeJs基本语法和类型
Feb 13 NodeJs
NodeJS使用jQuery选择器操作DOM
Feb 13 NodeJs
在windows上用nodejs搭建静态文件服务器的简单方法
Aug 11 NodeJs
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 NodeJs
NodeJS基础API搭建服务器详细过程记录
Apr 01 NodeJs
NodeJS如何实现同步的方法示例
Aug 24 NodeJs
nodejs使用async模块同步执行的方法
Mar 02 NodeJs
图解NodeJS实现登录注册功能
Sep 16 NodeJs
Nodejs在局域网配置https访问的实现方法
Oct 17 NodeJs
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
May 30 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
由php的call_user_func传reference引发的思考
2010/07/23 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
这段js代码得节约你多少时间
2011/12/20 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
如何减少浏览器的reflow和repaint
2015/02/26 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
vue实现路由监听和参数监听
2019/10/29 Javascript
es6中let和const的使用方法详解
2020/02/24 Javascript
JS控制下拉列表左右选择实例代码
2020/05/08 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
Python的高级Git库 Gittle
2014/09/22 Python
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
python实现远程控制电脑
2019/05/23 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
如何基于Python按行合并两个txt
2020/11/03 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
高一新生军训感言
2014/03/02 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
消防隐患整改通知书
2015/04/22 职场文书
捐书仪式主持词
2015/07/04 职场文书
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL