谁能解决这个问题?我是 node.js 和 redis 初学者。
函数 createClient() 可以接受 2 个参数:端口和主机。但我仍然被这个问题所困扰。
var client = redis.createClient();
client.on('connect', function(){
console.log('Redis client connected');
});
Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379 C:\Users\my-pc\Desktop\FINAL>node index events.js:187 throw er; // Unhandled 'error' event ^
Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1128:14) Emitted 'error' event on RedisClient instance at: at RedisClient.on_error (C:\Users\my-pc\Desktop\FINAL\node_modules\redis\index.js:406:14) at Socket. (C:\Users\my-pc\Desktop\FINAL\node_modules\redis\index.js:279:14) at Socket.emit (events.js:210:5) at emitErrorNT (internal/streams/destroy.js:92:8) at emitErrorAndCloseNT (internal/streams/destroy.js:60:3) at processTicksAndRejections (internal/process/task_queues.js:80:21) { errno: 'ECONNREFUSED',
code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1',
port: 6379 }
请您参考如下方法:
每当我也开始使用 docker 多个本地容器时,这是一个非常常见但简单的问题。
你看,你已经创建了一个 Node 应用程序和一个 redis 服务器,但两者是分开的,你没有在它们之间建立任何通信,这就是你面临此类问题的原因。
现在,首先您必须在 Node 应用程序和 redis-server 之间建立连接,以便它们之间可以进行通信。
为此,只需按照说明操作即可,希望这能解决您的问题。
第 1 步:要在多个本地容器之间建立连接,您有两种选择,
* Use docker CLI's networking features.
* Or, simply use docker-compose to solve the issue, i prefer docker-compose and i will show how to do this using docker-compose.
Docker-compose:Compose 是一个用于定义和运行多容器 docker 应用程序的工具。 Overview of docker-compose
第二步:在你的项目目录下创建一个docker-compose .yml文件,命名为“docker-compose.yml”
第 3 步:在“docker-compose.yml”文件中写入以下代码:
version: "2.0"
services:
redis-server:
image: "redis"
node-app:
build: .
ports:
- "8080:8080"
第 4 步:在您的 redis.createClient() 函数中,只需在 index.js 文件中传递您的主机和端口参数
const client = redis.createClient({
host: "redis-server",
port: 6379
});
第 5 步:使用 docker-compose CLI 中的 docker-compose 构建并运行您的 docker 容器
docker-compose up --build
第 6 步:最后,打开浏览器并点击以下 URL:
localhost:8080




