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 05 NodeJs
Nodejs学习笔记之Stream模块
Jan 13 NodeJs
NodeJS学习笔记之MongoDB模块
Jan 13 NodeJs
Nodejs如何搭建Web服务器
Mar 28 NodeJs
Nodejs进阶:核心模块net入门学习与实例讲解
Nov 21 NodeJs
解析NodeJS异步I/O的实现
Apr 13 NodeJs
nodejs开发微信小程序实现密码加密
Jul 11 NodeJs
Nodejs实现文件上传的示例代码
Sep 26 NodeJs
nodejs实现OAuth2.0授权服务认证
Dec 27 NodeJs
nodejs实现范围请求的实现代码
Oct 12 NodeJs
linux 下以二进制的方式安装 nodejs
Feb 12 NodeJs
一文秒懂nodejs中的异步编程
Jan 28 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无限分类的深入理解
2013/06/02 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
javascript实现无限级select联动菜单
2015/01/02 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
jquery加载单文件vue组件的方法
2017/06/20 jQuery
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
python中常用检测字符串相关函数汇总
2015/04/15 Python
使用Python生成url短链接的方法
2015/05/04 Python
Python简单实现enum功能的方法
2016/04/25 Python
Python 面试中 8 个必考问题
2018/11/16 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
有abstract方法的类一定要用abstract修饰吗
2016/03/14 面试题
好的演讲稿开场白
2013/12/30 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
父亲节活动总结
2015/02/12 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python