Не могу установить/получить с Nodejs и Redis
Вопрос
Я хочу написать Ueberdb Redis-Handler для моего EtherPad.
Я абсолютно не понимаю свою проблему, потому что с 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 (клиент), и вы увидите варимную под названием «подключен». Вы должны увидеть "истинный"
Если вы хотите использовать 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 являются асинхронными.
Другие советы
Если это не очевидно из принятого ответа, причина, по которой опубликованный код снялся, связана с асинхронностью.
Вы звоните get () до завершения ().