Question

Je fais une application qui utilise Redis.Cela fonctionne parfaitement sur mon ordinateur exécutant Ubuntu 12.04, mais sur le cloudfoundry, cela me donne une erreur.

Voici le code de l'application:

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

sur Cloudfoundry, quand j'exécute cette application, cela me donne cette sortie:

Clé de réglage 1

Obtenir la clé1

Erreur: Erreur: Échec de la vérification prête: ERR Fonctionnement non autorisé

Je peux confirmer que sa connexion au service REDIS à l'aide du port et du nom d'hôte spécifié par Cloudfoundry.

Alors je pense que son échec à cause de l'une de ces commandes.: (

Quelqu'un peut-il me dire, pourquoi cette erreur se produit-elle?

merci.: D

Était-ce utile?

La solution

Vous devez également vous authentifier à Redis.Essayez ceci:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top