谁能解决这个问题?我是 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 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!