docker-compose.yml
大概是这样的:
version : "3"
services:
irbredis:
image: redis:7.2.2-alpine
container_name: irbredis
irbserver:
image: node:20.9.0-alpine
container_name: irbserver
depends_on:
- irbredis
在node.js容器中的某个位置,我得到了以下内容:
const redis = require('redis');
const rclient = redis.createClient({ url: "redis://irbredis:6379" });
Redis服务器肯定在运行,我可以从docker-compose中expose 端口,并go URL判断日志(log).但是从node.js代码中,我得到了错误日志(log):
irbserver | Error: The client is closed
irbserver | at Commander._RedisClient_sendCommand (/app/node_modules/@redis/client/dist/lib/client/index.js:494:31)
irbserver | at Commander.commandsExecutor (/app/node_modules/@redis/client/dist/lib/client/index.js:189:154)
irbserver | at BaseClass.<computed> [as get] (/app/node_modules/@redis/client/dist/lib/commander.js:8:29)
irbserver | at Object.get (/app/node_modules/connect-redis/dist/cjs/index.js:20:34)
irbserver | at RedisStore.get (/app/node_modules/connect-redis/dist/cjs/index.js:53:42)
irbserver | at session (/app/node_modules/express-session/index.js:485:11)
irbserver | at Layer.handle [as handle_request] (/app/node_modules/express/lib/router/layer.js:95:5)
irbserver | at trim_prefix (/app/node_modules/express/lib/router/index.js:328:13)
irbserver | at /app/node_modules/express/lib/router/index.js:286:9
irbserver | at Function.process_params (/app/node_modules/express/lib/router/index.js:346:12)
我做错了什么?
更多上下文/node.js代码:
redisFunc.js
个
const redis = require('redis');
const rclient = redis.createClient({ url: "redis://irbredis:6379" });
module.exports =
{
rclient : rclient
}
它被用在
sessionMW.js
:
const session = require('express-session');
const RedisStore = require('connect-redis').default;
module.exports =
session
(
{
store: new RedisStore({ client : require('./redisFunc.js').rclient }),
//...
}
);
它在index.js
中使用
const express = require('express');
const app = express();
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.use(require('./sessionMW.js'));
//...
版本:
"connect-redis": "^7.1.0",
"express": "^4.18.2",
"express-session": "^1.17.3",
"redis": "^4.6.10",