質問

EtherPadのためにUeberdb Redishandlerを書きたいです。

私は自分の問題を絶対に理解していません。なぜなら、PHPを使用すると、問題なくキー/値を設定して取得できるからです。 Nodejsでのみ動作しません。

これがコードの例です。

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

何が間違っていますか?多分誰かが私のためにヒントを持っています。

役に立ちましたか?

解決

まず、Redisクライアントが接続されているかどうかを知る必要があります。 Console.log(クライアント)で確認でき、「Connected」と呼ばれるVaraibleが表示されます。 「真」が表示されるはずです

ノードでRedisを使用する場合は、このようなものを使用する必要があります

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

すべてのRedis関数は非同期であることに留意してください。

他のヒント

受け入れられた答えから明らかでない場合、投稿されたコードが失敗している理由は非同期性によるものです。

set()が完了する前にget()を呼び出します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top