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 相关文章推荐
抛弃Nginx使用nodejs做反向代理服务器
Jul 17 NodeJs
Nodejs实现多人同时在线移动鼠标的小游戏分享
Dec 06 NodeJs
轻松创建nodejs服务器(6):作出响应
Dec 18 NodeJs
使用nodejs开发cli项目实例
Jun 03 NodeJs
NodeJS连接MongoDB数据库时报错的快速解决方法
May 13 NodeJs
NodeJS基础API搭建服务器详细过程记录
Apr 01 NodeJs
nodejs+express搭建多人聊天室步骤
Feb 12 NodeJs
nodejs图片处理工具gm用法小结
Dec 12 NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 NodeJs
NodeJS实现一个聊天室功能
Nov 25 NodeJs
NodeJS模块Buffer原理及使用方法解析
Nov 11 NodeJs
node快速搭建后台的实现步骤
Feb 18 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开发文件系统实例讲解
2006/10/09 PHP
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
Apache服务器无法使用的解决方法
2013/05/08 PHP
php Imagick获取图片RGB颜色值
2014/07/28 PHP
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
详解如何在vue项目中引入elementUI组件
2018/02/11 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
2018/08/31 Javascript
微信小程序module.exports模块化操作实例浅析
2018/12/20 Javascript
JavaScript中的相等操作符使用详解
2019/12/21 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
python计算对角线有理函数插值的方法
2015/05/07 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
python输入中文的实例方法
2020/09/14 Python
纯CSS3单页切换导航菜单界面设计的简单实现
2016/08/16 HTML / CSS
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
朗仕(Lab series)英国官网:雅诗兰黛集团男士专属护肤品牌
2017/11/28 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
2013年研究生毕业感言
2014/02/06 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python
详解php中流行的rpc框架
2021/05/29 PHP
使用@Value值注入及配置文件组件扫描
2021/07/09 Java/Android
Go语言编译原理之变量捕获
2022/08/05 Golang