2012-07-25 2 views
0

Redis를 사용하는 앱을 만들고 있습니다. 우분투 12.04를 실행하는 컴퓨터에서 완벽하게 작동하지만 CloudFoundry에서는 오류가 발생합니다.NodeJS로 CloudFoundry에서 Redis 오류가 발생했습니다.

Setting key 1

Getting key1

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

나는 그것의 레디 스 서비스에 연결하는 것을 확인할 수 있습니다 :이 응용 프로그램을 실행할 때

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에서 지정한 포트와 호스트 이름을 사용합니다.

그래서 나는 그 명령 중 하나 때문에 실패했다고 생각합니다. :(

아무도 말해 줄 수, 왜 일이이 오류가

감사합니다 :.. D

답변

3
당신은뿐만 아니라 레디 스에 인증 할 필요가

이 시도 :

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); 
+0

헤이 글렌, D –

+1

현재 루비를 사용하는 가이드 만 있으므로 NodeJS를 사용하여 CloudFoundry에서 Redis를 사용하는 방법을 안내 할 수 있다면 새로 온 사람들에게 도움이 될 것입니다. : D –

+1

도움이됩니다. 다음주에 http://blog.cloudfoundry.com을 내보세요 (아마도 t 그는 다음과 같이 node.js 앱의 자동 구성 서비스에 대한 뉴스를 제공합니다! –

관련 문제