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 相关文章推荐
golang、python、php、c++、c、java、Nodejs性能对比
Mar 12 NodeJs
Nodejs初级阶段之express
Nov 23 NodeJs
基于nodejs+express(4.x+)实现文件上传功能
Nov 23 NodeJs
在windows上用nodejs搭建静态文件服务器的简单方法
Aug 11 NodeJs
Nodejs进阶:核心模块net入门学习与实例讲解
Nov 21 NodeJs
Nodejs下用submit提交表单提示cannot post错误的解决方法
Nov 21 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
nodejs+websocket实时聊天系统改进版
May 18 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
nodejs读取本地中文json文件出现乱码解决方法
Oct 10 NodeJs
Nodejs技巧之Exceljs表格操作用法示例
Nov 06 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
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
PHP _construct()函数讲解
2019/02/03 PHP
JavaScript静态的动态
2006/09/18 Javascript
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
javascript hashtable 修正版 下载
2010/12/30 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
javascript连续赋值问题
2015/07/08 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
对Python中plt的画图函数详解
2018/11/07 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
本科生详细的自我评价
2013/09/19 职场文书
养殖项目策划书范文
2014/01/13 职场文书
创业计划实施的7大步骤
2014/02/05 职场文书
安全生产专项整治方案
2014/05/06 职场文书
建设工地安全标语
2014/06/07 职场文书
中文专业求职信
2014/06/20 职场文书
办理信用卡工作证明
2014/09/30 职场文书
琅琊山导游词
2015/02/05 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
深入理解go缓存库freecache的使用
2022/02/15 Golang