I want to write a ueberDB Redis-Handler for my Etherpad.
I absolutely do not understand my problem because with PHP I can set and get key/values without any problems. It only does not work with NodeJS.
Here is a example code:
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"));
What do I wrong? Maybe somebody has a tip for me.
First, you need to know if your redis client is connected. You can check with console.log(client) and you will see a varaible called "connected". You should see "true"
If you want to use redis in node you should use something like this
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);
}
});
}
});
Keep in mind that all redis function are asynchronous.
If it's not obvious from the accepted answer, the reason the posted code is failing is due to the asynchronicity.
You're calling get() before set() has completed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With