Вопрос

Я хочу написать 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 () до завершения ().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top