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命令行参数处理模块commander使用实例
Sep 17 NodeJs
nodejs事件的监听与触发的理解分析
Feb 12 NodeJs
NodeJS中利用Promise来封装异步函数
Feb 25 NodeJs
nodeJS实现简单网页爬虫功能的实例(分享)
Jun 08 NodeJs
NodeJS实现图片上传代码(Express)
Jun 30 NodeJs
nodejs项目windows下开机自启动的方法
Nov 22 NodeJs
解决Nodejs全局安装模块后找不到命令的问题
May 15 NodeJs
nodejs读取本地中文json文件出现乱码解决方法
Oct 10 NodeJs
手把手教你如何使用nodejs编写cli命令行
Nov 05 NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 NodeJs
Nodejs实现WebSocket代码实例
May 19 NodeJs
NodeJS配置CORS实现过程详解
Dec 02 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模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
DOM 基本方法
2009/07/18 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
javascript确认框的三种使用方法
2013/12/17 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
Vue实现简单分页器
2018/12/29 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
怎样使用Python脚本日志功能
2016/08/14 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
python实现串口自动触发工作的示例
2019/07/02 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
浅析Python requests 模块
2020/10/09 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
css3实例教程 一款纯css3实现的发光屏幕旋转特效
2014/12/07 HTML / CSS
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
安卓程序员求职信
2014/02/28 职场文书
三严三实对照检查材料
2014/09/22 职场文书
中学生自我评价范文
2015/03/03 职场文书
二年级数学教学反思
2016/02/16 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
分享Python异步爬取知乎热榜
2022/04/12 Python