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的优势和适合开发的程序
Aug 14 NodeJs
详解nodeJS之二进制buffer对象
Jun 03 NodeJs
基于nodejs+express4.X实现文件下载的实例代码
Jul 13 NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 NodeJs
nodejs+mongodb aggregate级联查询操作示例
Mar 17 NodeJs
解决nodejs的npm命令无反应的问题
May 17 NodeJs
nodejs的路径问题的解决
Jun 30 NodeJs
详解nodejs http请求相关总结
Mar 31 NodeJs
nodejs中实现修改用户路由功能
May 24 NodeJs
nodejs对项目下所有空文件夹创建gitkeep的方法
Aug 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
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
php中count获取多维数组长度的方法
2014/11/03 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
js URL参数的拼接方法比较
2012/02/15 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
jQuery插件ajaxFileUpload实现异步上传文件效果
2015/04/14 Javascript
JavaScript使用Prototype实现面向对象的方法
2015/04/14 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
Vuex之理解Store的用法
2017/04/19 Javascript
详谈js原型继承的一些问题
2017/09/06 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
2017/11/27 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
[14:03]2017DOTA2亚洲邀请赛开幕式:12神兵演绎水墨中华
2017/04/01 DOTA
图文详解WinPE下安装Python
2016/05/17 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
德国PC硬件网站:CASEKING
2016/10/20 全球购物
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
美团网旗下网上订餐平台:美团外卖
2020/03/05 全球购物
会计电算化专业个人的自我评价
2013/11/24 职场文书
个人委托书范本
2014/04/02 职场文书
2014年党员个人工作总结
2014/12/02 职场文书
不同意离婚答辩状
2015/05/22 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技