【发布时间】: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