문제

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top