有了 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/