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 eval函数深入认识
Feb 21 Javascript
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
Nov 12 Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
Feb 23 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
Jun 16 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
Feb 19 Javascript
js如何准确获取当前页面url网址信息
Sep 13 Javascript
js获取Html元素的实际宽度高度的方法
May 19 Javascript
JS简单实现仿百度控制台输出信息效果
Sep 04 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
Dec 24 Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 Javascript
vue中使用vue-pdf的方法详解
Sep 05 Javascript
JavaScript常用8种数组去重代码实例
Sep 09 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
浅析php变量作用域的一些问题
2013/08/08 PHP
一个经典的PHP文件上传类分享
2014/11/18 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
2017/08/10 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
javascript表单验证大全
2015/08/12 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
jquery点击切换背景色的简单实例
2016/08/25 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
vue视频播放插件vue-video-player的具体使用方法
2019/11/08 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
跟老齐学Python之重回函数
2014/10/10 Python
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
Python 字典中的所有方法及用法
2020/06/10 Python
北美三大旅游网站之一:Travelocity
2017/08/12 全球购物
美国领先的精品家居照明和装饰产品在线零售商:LightsOnline.com
2018/01/23 全球购物
佳能加拿大网上商店:Canon eStore Canada
2018/04/04 全球购物
最好的商品表达自己:Cafepress
2019/09/04 全球购物
广告学专业毕业生自荐信
2013/09/24 职场文书
电子商务专员岗位职责
2013/12/11 职场文书
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
运输服务质量承诺书
2014/03/27 职场文书
技校毕业生自荐信
2014/06/03 职场文书
公司授权委托书范文
2014/08/02 职场文书
2016元旦晚会主持人开场白和结束语
2015/12/03 职场文书
Go语言设计模式之结构型模式
2021/06/22 Golang
详解Vue的列表渲染
2021/11/20 Vue.js