即使服务器已启动并运行,Node Redis 也无法在我的 Windows 计算机上运行

Cod*_*yya 8 windows redis node.js node-redis

const express = require("express");
const redis = require("redis");
const app = express();

const client = redis.createClient({
  url: "redis://admin123@ec2-35-182-15-126.ca-central-1.compute.amazonaws.com",
});

client.on("connect", function () {
  console.log("redis connected");
  console.log(`connected ${redisClient.connected}`);
});

client.on("error", (err) => {
  console.log(err);
});

app.listen(process.env.PORT || 3000, () => {
  console.log("Node server started");
});
Run Code Online (Sandbox Code Playgroud)

即使我已经通过使用 Redsmin 连接检查了 EC2 redis 实例,上面的代码也没有显示与 redis 服务器的任何连接。 Redsmin 中的托管详细信息

这是一件非常简单的事情,但我得到的错误无法通过谷歌搜索。

节点服务器已启动 C:\Users\Sithira_105661\Desktop\Projects\Learning\Redis\node_modules@node-redis\client\dist\lib\client\index.js:387 return Promise.reject(newErrors_1.ClientClosedError()); ^

ClientClosedError:客户端在 Commander._RedisClient_sendCommand (C:\Users\Sithira_105661\Desktop\Projects\Learning\Redis\node_modules@node-redis\client\dist\lib\client\index.js:387:31) 处关闭。 .commandsExecutor (C:\Users\Sithira_105661\Desktop\Projects\Learning\Redis\node_modules@node-redis\client\dist\lib\client\index.js:160:154) 位于 Commander.BaseClass。[设置] (C:\Users\Sithira_105661\Desktop\Projects\Learning\Redis\node_modules@node-redis\client\dist\lib\commander.js:8:29) 在对象处。(C:\Users\Sithira_105661\Desktop\Projects\Learning\Redis\redis.js:19:8) 在 Module._compile (node:internal/modules/cjs/loader:1101:14) 在 Object.Module._extensions。 .js(节点:内部/模块/cjs/loader:1153:10)在Module.load(节点:内部/模块/cjs/loader:981:32)在Function.Module._load(节点:内部/模块/cjs) /loader:822:12) 在 Function.executeUserEntryPoint [作为 runMain] (节点:internal/modules/run_main:81:12) 在节点:internal/main/run_main_module:17:47

帮助我理解这个问题。提前致谢。

Cod*_*yya 28

终于找到了解决办法。我使用了node-redis 3.0.0而不是4,并且代码工作正常。我不知道为什么它在最新的 node-redis 中不起作用。如果你们中有人遇到这个问题,请使用node-redis 3

  • 谢啦兄弟。我挣扎了3天,快要疯了。尽管我做的一切都完全正确,但它就是不起作用。最后“npm i redis@3.1.2”它的工作kkkk (4认同)

小智 10

我使用了node-redis 3.1.2而不是4,并且代码工作正常。


小智 5

我不认为我们应该将版本从 4 减少到 3。

我们可以用 -

const redis = require('redis');

const client = redis.createClient();

   
(async () => {
    await client.connect();
})();

client.on('connect', () => console.log('Redis Client Connected'));
client.on('error', (err) => console.log('Redis Client Connection Error', err));
Run Code Online (Sandbox Code Playgroud)