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访问ActiveX对象,以操作Access数据库为例。
Dec 15 NodeJs
轻松创建nodejs服务器(6):作出响应
Dec 18 NodeJs
NodeJS学习笔记之Connect中间件模块(二)
Jan 27 NodeJs
nodejs的HTML分析利器node-jquery用法浅析
Nov 08 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
nodejs入门教程四:URL相关模块用法分析
Apr 24 NodeJs
Nodejs中Express 常用中间件 body-parser 实现解析
May 22 NodeJs
nodejs 搭建简易服务器的图文教程(推荐)
Jul 18 NodeJs
Mac 安装 nodejs方法(图文详细步骤)
Oct 30 NodeJs
nodejs 使用http进行post或get请求的实例(携带cookie)
Jan 03 NodeJs
NodeJS实现同步的方法
Mar 02 NodeJs
NodeJS模块Buffer原理及使用方法解析
Nov 11 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
Zerg建筑一览
2020/03/14 星际争霸
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
js单向链表的具体实现实例
2013/06/21 Javascript
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
原生js+canvas实现贪吃蛇效果
2020/08/02 Javascript
python代码制作configure文件示例
2014/07/28 Python
给Python入门者的一些编程建议
2015/06/15 Python
pyenv命令管理多个Python版本
2017/03/26 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
用python求一重积分和二重积分的例子
2019/12/06 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
美国药妆网站:EDCskincare.com(防晒、痤疮、抗衰老等)
2017/04/28 全球购物
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
视图的作用
2014/12/19 面试题
北京振戎融通Java面试题
2015/09/03 面试题
工商管理专业职业生涯规划
2014/01/01 职场文书
复核员上岗演讲稿
2014/01/05 职场文书
电大毕业自我鉴定
2014/02/03 职场文书
财务管理职业生涯规划书
2014/02/26 职场文书
公司运动会策划方案
2014/05/25 职场文书
七一讲话心得体会
2014/09/05 职场文书
个性与发展自我评价
2015/03/06 职场文书
用Python提取PDF表格的方法
2021/04/11 Python