node中session持久化问题解决

简介: 本文介绍了如何解决Node.js中session无法持久化的问题,通过使用Redis数据库来实现session的持久化存储。

session是node服务端存储的缓存,但是在重启项目后,我们的缓存会丢失,这样前端过来的标识比如cookie我们就比配不上了,我们想要达到前端登陆后不掉线的效果。为了解决这个问题,我们使用redis来解决。

首先我们可以安装一下redis

安装安装redis流程

按照菜鸟教程的流程安装上即可。

打开一个 cmd 窗口 使用 cd 命令切换目录到 C:\redis 运行:

redis-server.exe redis.windows.conf

在这里插入图片描述
出现这个即可,表示安装成功。
下面配置node,首先安装两个npm 包

npm install redis connect-redis --save
//引用session
var session = require("express-session");
var cookieParser = require("cookie-parser")
var redis = require('redis');
var RedisStore = require('connect-redis')(session);

var redisClient = redis.createClient(6379, '127.0.0.1');//, { auth_pass: 'password' }
//用来设置签名密钥
app.use(cookieParser('zjq'))

// express中是把session信息存储在内存中
// 配置session
app.use(session({
   
  store: new RedisStore({
    client: redisClient }),
  secret: "zjq", //设置签名秘钥 内容可以任意填写  但是要和cookieParser相匹
  cookie: {
    maxAge: 60 * 1000 * 60 }, //设置cookie的过期时间,例:80s后    session和相应的cookie失效过期
  resave: true, //强制保存,如果session没有被修改也要重新保存
  saveUninitialized: false //如果原先没有session那么久设置,否则不设置
}))

是他们禅城关联的是这个属性,这是传入session的属性

 store: new RedisStore({
    client: redisClient }),

6379 是redis的默认端口号;

参考文章:node.js中持久化session

目录
相关文章
|
1月前
|
缓存 NoSQL Redis
【Azure Redis 缓存】Azure Cache for Redis 是否记录具体读/写(Get/Set)或删除(Del)了哪些key呢?
【Azure Redis 缓存】Azure Cache for Redis 是否记录具体读/写(Get/Set)或删除(Del)了哪些key呢?
node笔记记录36process之1
node笔记记录36process之1
49 0
node笔记记录36process之1
node笔记记录37process之2
node笔记记录37process之2
52 0
node笔记记录37process之2
|
监控 JavaScript 前端开发
使用node的服务器请求初解
前几天写了一个翻译小工具,使用了node.js的http服务器请求,在这里记录一下使用的步骤和注意事项
126 0
使用node的服务器请求初解
|
Windows 内存技术
Node 多版本管理器n
Node 多版本管理器n
271 0
|
存储 JavaScript 前端开发
Node(5):Buffer 对象的使用
本文简单介绍了 Node.js 中 Buffer 对象的使用,包括创建实例 buffer 的方法,以及操作 buffer 的常用方法。
240 0
|
SQL 测试技术
Node中如何实现事务(临时版)
群里有学生提出要一个事务的例子。。比较急 我就先把试验放出来概念和其他的后面再补充
288 0
|
存储 NoSQL 前端开发
node-23-redis
what 跨平台的非关系型数据库。 key-value存储 how session 存储在内存中,服务器意外重启就没了
133 0
node-23-redis
|
运维 Kubernetes 网络安全
7. 复制k8s Node节点 并重新初始化k8s-nodes2节点 (k8s连载)
为什么会有这样一个操作呢? (备注: 避免采坑的有效方法)
581 0
7. 复制k8s Node节点 并重新初始化k8s-nodes2节点 (k8s连载)