我想为我的Etherpad编写一个ueberDB Redis-Handler。
我绝对不明白我的问题,因为使用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"));
我错了什么?也许有人给我一个提示。
答案 0 :(得分:7)
首先,您需要知道您的redis客户端是否已连接。您可以使用console.log(客户端)进行检查,您将看到一个名为“connected”的变量。你应该看到“真实”
如果你想在节点中使用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函数都是异步的。
答案 1 :(得分:1)
如果从接受的答案中不明显,发布的代码失败的原因是由于异步性。
你在set()完成之前调用get()。