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开发微信公众号后台服务实例
Sep 03 NodeJs
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
Dec 18 NodeJs
NodeJS学习笔记之FS文件模块
Jan 13 NodeJs
学习 NodeJS 第八天:Socket 通讯实例
Dec 21 NodeJs
详解nodejs 文本操作模块-fs模块(五)
Dec 23 NodeJs
nodejs6下使用koa2框架实例
May 18 NodeJs
nodejs实现简单的gulp打包
Dec 21 NodeJs
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
Jan 05 NodeJs
Mac下通过brew安装指定版本的nodejs教程
May 17 NodeJs
解决nodejs的npm命令无反应的问题
May 17 NodeJs
nodejs同步调用获取mysql数据时遇到的大坑
Mar 02 NodeJs
Nodejs中的require函数的具体使用方法
Apr 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处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
js导出txt示例代码
2014/01/14 Javascript
js生成缩略图后上传并利用canvas重绘
2014/05/15 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
VueJS全面解析
2016/11/10 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
基于pako.js实现gzip的压缩和解压功能示例
2017/06/13 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
2018/09/03 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
详解vue 命名视图
2019/08/14 Javascript
Python实现拼接多张图片的方法
2014/12/01 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
python中reload重载实例用法
2020/12/15 Python
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
淘宝活动策划方案
2014/02/06 职场文书
医院合作协议书
2014/08/19 职场文书
2014年国庆节广播稿
2014/09/19 职场文书
安全承诺书
2015/01/19 职场文书
交通事故调解协议书
2015/05/20 职场文书