【问题标题】:Redis in Nodejs on Cloud9 IDE: [Error: Auth error: undefined]Cloud9 IDE 上 Nodejs 中的 Redis:[错误:身份验证错误:未定义]
【发布时间】:2013-09-05 08:24:31
【问题描述】:

这是我的代码:

var express = require("express"),
    app = express(),
    server = require("http").createServer(app),
    io = require("socket.io").listen(server),
    redis = require("redis"),
    env = {PORT: process.env.PORT || 8080, IP: process.env.IP || "localhost"};

client = redis.createClient(env.PORT , env.IP);
client.on("error", function(err) {
    console.log(err);
});

server.listen(env.PORT);
console.log("Server started @ " + env.IP + ":" + env.PORT);

尝试运行后,我在控制台收到以下信息:

Running Node Process
Your code is running at 'http://modified.address.c9.io'.
Important: use 'process.env.PORT' as the port and 'process.env.IP' as the host in your scripts!
info: socket.io started
Server started @ modified.ip.address.1:8080
[Error: Auth error: undefined]

我尝试建立连接,它完美地连接到IP和PORT。但是,错误[Error: Auth error: undefined] 出现并停在那里。我用谷歌搜索了错误,我使用的 IDE 的支持......,令人惊讶的是,我的问题只有 7 个链接。所以我认为这可能是我知识的一个漏洞,或者这不是一个真正的问题,但我不知道如何解决它。我只能从这些 Google 结果中提取(我不确定)我需要在创建 client.auth(pass) 后立即使用它。但是我应该在哪里找到密码?当我安装它npm install redis 时,我没有配置任何东西,也没有被告知要设置密码。所以我陷入了僵局。

我用的是Cloud9 IDE(c9.io),使用的模块如上代码所示。

----致以最诚挚的问候, ----蒂姆。

【问题讨论】:

  • 你给的设置是让 node 和 redisClient 使用相同的端口 - 8080。你启动的 redis 服务器的端口是什么?
  • 他们都听同一个端口process.env.PORT = 8080,就像控制台建议的那样。他们应该在同一个端口运行吗?访问网站或在我的工作区收听的链接不包括端口,这意味着我别无选择,只能使用 process.env.PORT 和 process.env.IP 进行设置,这迫使他们收听相同的内容8080 端口。

标签: node.js authentication redis cloud9-ide


【解决方案1】:

我发现出了什么问题。

我确实安装了 Redis,但这是一个 Redis 库,它充当 Redis 驱动程序和 NodeJS 之间的桥梁。在 Cloud9 上,我也必须手动安装 Redis。

所以实际安装 Redis 需要 2 个命令:

在 Cloud9 上安装 Redis 驱动

nada-nix install redis

为 NodeJS 安装 Redis 库

npm install redis

感谢任何试图帮助我的人。

【讨论】:

    【解决方案2】:

    您可以使用自己的配置文件运行 redis-server。您可以创建自己的配置,如下所示。

     //port and ip of ur redis server
      port 6371
      bind 127.0.0.1
      //password for this server
      requirepass ucanmentionurpwd
      //storing snapshots of the data 
      save 60 1
      dbfilename dump.rdb
      dir /tmp/db
    
      //starting redis server
       redis-server //ur config file location
    

    redis配置见此链接 https://raw.github.com/antirez/redis/2.6/redis.conf

    如果你在密码中提到 requirepass 意味着只有你需要做

             client.auth('urPwd');
    

    否则不需要调用client.auth方法。

    【讨论】:

    • 好像是我需要的。但是我在哪里可以找到我的密码?我不知道文件放在哪里。当我尝试手动启动服务器redis-server 时,它显示bash: redis-server: command not found。我很确定我安装了 Redis。
    • @cuzmAZN ok.u 安装了 redis 没问题。你安装了 redis-server。不意味着你应该安装那个 redis-server..
    猜你喜欢
    • 2019-07-10
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 2018-11-16
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多