node中session持久化问题解决
Node 解决 session 持久 问题
2023-09-27 14:22:48 时间
session是node服务端存储的缓存,但是在重启项目后,我们的缓存会丢失,这样前端过来的标识比如cookie我们就比配不上了,我们想要达到前端登陆后不掉线的效果。为了解决这个问题,我们使用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
相关文章
- 带你了解Node.js包管理工具:包与NPM
- Cocos工程命名规则整理(node部分)
- 教你通过Node.js漏洞完成渗透测试
- 解决vue报错:Module build failed (from ./node_modules/_eslint-loader@2.2.1@eslint-loader/index.js): TypeError: Cannot read property 'range' of null
- node-sass 安装失败的解决措施[转]
- node.js在使用中文时产生乱码怎么解决
- Node.js 博客实例(九)标签和标签页面
- Express搭建一个Node项目
- node使用art-template生成静态页面
- LoopBack – 开源的,可扩展的 Node.js 框架
- 成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】
- 【node.js】npm包管理工具的使用 04
- 【实战】Vue Element+Node.js开发企业通用管理后台系统——Vuex 和 Vue-router 进阶
- JavaScript node.js Discord.js v13报错:ReferenceError: AbortController is not defined解决方法
- 使用Chrome DevTools直接调试Node.js与JavaScript(并行)
- 【Node.js练习】web服务器案例
- node.js + gulp用JENKINS作CI编译
- Openstack组件部署 — Networking service_Compute Node