redis.lindex()返回true而不是索引处的值

时间:2014-10-09 16:18:57

标签: node.js redis node-redis

我有一个现有的键值列表:key value1 value2

redis-cli中,我运行LRANGE key 0 -1,返回:

1) value1
2) value2

这确认了键值列表存在。在redis-cli中,运行LINDEX key 0会返回:

"value1"

但是,在我的节点应用程序中,当我执行console.log(redis.lindex('key', 0))时,它会打印true而不是索引处的值。

我做错了什么?

注意:我使用node-redis包。

1 个答案:

答案 0 :(得分:7)

node-redis中的命令函数的调用是异步的,因此它们在回调中返回结果,而不是直接从函数调用返回。您对lindex的来电应如下所示:

redis.lindex('key', 0, function(err, result) {
    if (err) {
        /* handle error */
    } else {
        console.log(result);
    }
});

如果你需要"返回"由于您所处的任何功能,您必须通过回调来做到这一点。像这样:

function callLIndex(callback) {
    /* ... do stuff ... */

    redis.lindex('key', 0, function(err, result) {
        // If you need to process the result before "returning" it, do that here

        // Pass the result on to your callback
        callback(err, result)
    });
}

您可以这样称呼:

callLIndex(function(err, result) {
    // Use result here
});