No se puede configurar/obtener con NodeJS y Redis
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í.
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.