node.js - 如何使用 KrakenJS 将 Redis 配置为 session 存储

标签 node.js session redis connect

有了 Express,我可以像这样使用 Redis 作为 session 存储:

var express = require('express');
var app = express();
var RedisStore = require('connect-redis')(express);

app.use(express.cookieParser());
app.use(express.session({
    store: new RedisStore({
    host: 'localhost',
    port: 6379,
    db: 'test',
    pass: '123456'
  }),
  secret: '123456789'
}));

但是对于 Kraken, session 配置在文件 config/middleware.json 中。我将文件更改为使用 connect-redis 如下:

{
    "middleware": {
        "session": {
           "module": "connect-redis",
           "secret": "99b91c387e6e049308fc31d3cfff5fd3149e419c"
        }
    }
}

这样,Kraken 确实使用 Redis 作为 session 存储,但我应该如何像 Express 一样传递 Redis 的选项(密码、主机、数据库名称...)?

最佳答案

kraken-js 的文档不是很广泛。希望它有所改进。

我们必须深入研究代码并理解其中的逻辑,然后我们才能解决。

希望这能帮助其他想在 Kraken.js 中使用 Redis Session 存储的人

将“connect-redis”添加到 package.json

"dependencies": {
    ...
    "connect-redis": ">=1.0.0"
},

安装“connect-redis”模块

npm install

在config/middleware.json中添加如下配置

{
    "middleware": {
        "session": {
            "module": "connect-redis",
            "config": {
                "host": "localhost",
                "port": 6379,
                "db": 1
            },
            "secret": "a1df0e81ef54d199567befb02761b1834c8b7406"
        }
    }
}

根据需要更改配置

启动/重启服务器,它应该可以工作了!

前提是你已经运行了Redis

关于node.js - 如何使用 KrakenJS 将 Redis 配置为 session 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20280123/

相关文章:

javascript - 使用 findOne 更新 mongoDB 文档中的子字段并保存

node.js - Meteor 1.3模块结构

php - 销毁 session ,但保留一组变量

javascript - 如何将 php session 转换为可用变量

php - 保持用户特定 session 信息安全的最佳方式

python - 如何在python中将元素添加到已排序的redis集中

Redis 高效存储数据(哈希)

node.js - 如何使用 Sequelize 提取包含特定日期的行?

java - 使用 java 、Redis、Elastic Search 、Mongo 自动完成

node.js - 我要么没有从网络套接字(socket.io)收到任何消息,要么偶尔一次收到所有消息(但并非总是如此)