Pregunta

Quiero escribir un UEBERDB Redis-Handler para mi Etherpad.

Absolutamente no entiendo mi problema porque con PHP puedo configurar y obtener la clave/valores sin ningún problema. Solo no funciona con NodeJS.

Aquí hay un código de ejemplo:

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

¿Qué estoy mal? Tal vez alguien tenga un consejo para mí.

¿Fue útil?

Solución

Primero, debe saber si su cliente Redis está conectado. Puede consultar con Console.log (Cliente) y verá un Varaible llamado "Conectado". Deberías ver "verdadero"

Si desea usar Redis en el nodo, debe usar algo como esto

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

Tenga en cuenta que toda la función Redis es asíncrona.

Otros consejos

Si no es obvio por la respuesta aceptada, la razón por la que el código publicado está fallando se debe a la asíncrona.

Estás llamando a get () antes de que se haya completado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top