gpt4 book ai didi

node.js - 使用 NodeJS 的 CloudFoundry 上的 Redis 失败

转载 作者:可可西里 更新时间:2023-11-01 11:12:15 24 4
gpt4 key购买 nike

我正在制作一个使用 Redis 的应用程序。它在我运行 Ubuntu 12.04 的计算机上完美运行,但在 CloudFoundry 上它给我一个错误。

这是应用程序的代码:

var
http = require("http"),
redis = require("redis"),
cf = require("cloudfoundry");

cf.cloud;

if (cf.redis["myredisservice"]) {
var rport = cf.redis["myredisservice"].credentials.port;
var rhost = cf.redis["myredisservice"].credentials.hostname;
} else {
var rport = 6379;
var rhost = "127.0.0.1";
}


http.createServer(function(req, res) {
var client = redis.createClient(rport, rhost);

res.writeHead(200, {"Content-Type": "text/html"});

client.on("error", function(error) {
res.write("Error: " + error);
});

res.write("Setting key 1<br>");
client.set("key1", "My 1st String!", redis.print);

res.write("Getting key1<br>");
client.get("key1", function(error, reply) {
res.write("Results for key1<br>");
res.write(reply);
client.end();
res.end();
});
}).listen(cf.port || 3000);

在 CloudFoundry 上,当我运行这个应用程序时,它会给我这个输出:

Setting key 1

Getting key1

Error: Error: Ready check failed: ERR operation not permitted

我可以确认它使用 CloudFoundry 指定的端口和主机名连接到 Redis 服务。

所以我认为它的失败是因为其中一个命令。 :(

谁能告诉我,为什么会出现这个错误?

谢谢。 :D

最佳答案

您还需要对 Redis 进行身份验证。试试这个:

var
http = require("http"),
redis = require("redis"),
cf = require("cloudfoundry");

cf.cloud;

if (cf.redis["myredisservice"]) {
var rport = cf.redis["myredisservice"].credentials.port;
var rhost = cf.redis["myredisservice"].credentials.hostname;
var rpass = cf.redis["myredisservice"].credentials.password;
} else {
var rport = 6379;
var rhost = "127.0.0.1";
}


http.createServer(function(req, res) {
var client = redis.createClient(rport, rhost);
client.auth(rpass);

res.writeHead(200, {"Content-Type": "text/html"});

client.on("error", function(error) {
res.write("Error: " + error);
});

res.write("Setting key 1<br>");
client.set("key1", "My 1st String!", redis.print);

res.write("Getting key1<br>");
client.get("key1", function(error, reply) {
res.write("Results for key1<br>");
res.write(reply);
client.end();
res.end();
});
}).listen(cf.port || 3000);

关于node.js - 使用 NodeJS 的 CloudFoundry 上的 Redis 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11658276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com