Frage

Ich möchte einen Ueberdb Redis-Handler für mein Etherpad schreiben.

Ich verstehe mein Problem absolut nicht, denn mit PHP kann ich ohne Probleme Schlüssel/Werte einstellen und erhalten. Es funktioniert nur nicht mit NodeJs.

Hier ist ein Beispielcode:

var redis = require("redis");
client = redis.createClient();
client.on("error", function (err) {
  console.log("Error " + err);
});

client.set("test", "string val", redis.print);
console.log(client.get("test"));

Was falsch falsch? Vielleicht hat jemand einen Tipp für mich.

War es hilfreich?

Lösung

Zunächst müssen Sie wissen, ob Ihr Redis -Client verbunden ist. Sie können sich bei Console.log (Client) erkundigen und sehen eine varaible namens "Connected". Sie sollten "wahr" sehen

Wenn Sie Redis im Knoten verwenden möchten, sollten Sie so etwas verwenden

    client.set("test","val", function(err) {
        if (err) {
           // Something went wrong
           console.error("error");
        } else {
            client.get("test", function(err, value) {
                 if (err) {
                     console.error("error");
                 } else {
                     console.log("Worked: " + value);
                 }
            });
        }
    });

Denken Sie daran, dass alle Redis -Funktionen asynchron sind.

Andere Tipps

Wenn aus der akzeptierten Antwort nicht ersichtlich ist, ist der Grund, warum der veröffentlichte Code fehlschlägt, an der Asynchronizität.

Sie rufen Get () an, bevor set () abgeschlossen ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top