node.js 中间件express-session使用详解


Posted in Javascript onMay 20, 2017

本文介绍的关于node.js中间件express-session的相关内容,分享出来供大家从参考学习,下面来一起看看详细的介绍:

一、为什么使用session?

session运行在服务器端,当客户端第一次访问服务器时,可以将客户的登录信息保存。

当客户访问其他页面时,可以判断客户的登录状态,做出提示,相当于登录拦截。

session可以和Redis或者数据库等结合做持久化操作,当服务器挂掉时也不会导致某些客户信息(购物车)丢失。

二、session的工作流程:

当浏览器访问服务器并发送第一次请求时,服务器端会创建一个session对象,生成一个类似于key,value的键值对, 然后将key(cookie)返回到浏览器(客户)端,浏览器下次再访问时,携带key(cookie),找到对应的session(value) 。 客户的信息都保存在session中。

三、express-session的常用参数:

secret:一个String类型的字符串,作为服务器端生成session的签名。

name:返回客户端的key的名称,默认为connect.sid,也可以自己设置。

resave:(是否允许)当客户端并行发送多个请求时,其中一个请求在另一个请求结束时对session进行修改覆盖并保存。

默认为true。但是(后续版本)有可能默认失效,所以最好手动添加。

saveUninitialized:初始化session时是否保存到存储。默认为true, 但是(后续版本)有可能默认失效,所以最好手动添加。

cookie:设置返回到前端key的属性,默认值为{ path: ‘/', httpOnly: true, secure: false, maxAge: null }

express-session的一些方法:

Session.destroy() :删除session,当检测到客户端关闭时调用。

Session.reload() :当session有修改时,刷新session。

Session.regenerate() :将已有session初始化。

Session.save() :保存session。

四、示例demo

//app.js中添加如下代码(已有的不用添加)
var express = require('express');
var cookieParser = require('cookie-parser');
var session = require('express-session');

app.use(cookieParser('sessiontest'));
app.use(session({
 secret: 'sessiontest',//与cookieParser中的一致
 resave: true,
 saveUninitialized:true
}));
//修改router/index.js,第一次请求时我们保存一条用户信息。
router.get('/', function(req, res, next) {
 var user={
  name:"Chen-xy",
  age:"22",
  address:"bj"
 }
 req.session.user=user;
 res.render('index', {
  title: 'the test for nodejs session' ,
  name:'sessiontest'
 });
});
//修改router/users.js,判断用户是否登陆。
router.get('/', function(req, res, next) {
 if(req.session.user){
  var user=req.session.user;
  var name=user.name;
  res.send('你好'+name+',欢迎来到我的家园。');
 }else{
  res.send('你还没有登录,先登录下再试试!');
 }
});

总结

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript Event学习第八章 事件的顺序
Feb 07 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
Dec 19 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
Jun 17 Javascript
JavaScript时间转换处理函数
Apr 14 Javascript
javascript实现将文件保存到本地方法汇总
Jul 26 Javascript
Bootstrap select下拉联动(jQuery cxselect)
Jan 04 Javascript
jQuery命名空间与闭包用法示例
Jan 12 Javascript
JS实现的添加弹出层并完成锁屏操作示例
Apr 07 Javascript
mui back 返回刷新页面的实例
Dec 06 Javascript
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 jQuery
9102了,你还不会移动端真机调试吗
Mar 25 Javascript
通过js给网页加上水印背景实例
Jun 17 Javascript
JS 调试中常见的报错问题解决方法
May 20 #Javascript
详解使用angular-cli发布i18n多国语言Angular应用
May 20 #Javascript
ztree实现权限横向显示功能
May 20 #Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
May 20 #Javascript
在使用JSON格式处理数据时应该注意的问题小结
May 20 #Javascript
微信小程序利用co处理异步流程的方法教程
May 20 #Javascript
关于jQuery库冲突的完美解决办法
May 20 #jQuery
You might like
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
献给php初学者(入门学习经验谈)
2010/10/12 PHP
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
JavaScript函数详解
2014/11/17 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
JavaScript模块详解
2017/12/18 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
vue - props 声明数组和对象操作
2020/07/30 Javascript
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
python合并多个excel文件的示例
2020/09/23 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
欧舒丹美国官网:L’Occitane美国
2018/02/23 全球购物
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
大学生优秀班干部事迹材料
2014/05/26 职场文书
旅游与酒店管理专业求职信
2014/07/21 职场文书
红色经典电影观后感
2015/06/18 职场文书
python小型的音频操作库mp3Play
2022/04/24 Python