NodejsとRedisで設定/取得できません
質問
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()を呼び出します。
所属していません StackOverflow