redis.js get返回true而不是值

时间:2019-01-12 02:59:59

标签: javascript node-redis

我正在尝试将salt的值返回给我的函数,但是我所得到的都是真实的。

function getUserSalt(client, username) {

    let salt = client.HGET(username, "salt", function (error, result){
        if(error) throw error;

        return result;
    })

    return salt;
}

2 个答案:

答案 0 :(得分:1)

您使用的回调不正确。

function getUserSalt(client, username, callback) {

return client.HGET(username, "salt", callback);

}

现在,它可以与回调一起使用,它将第一个参数接受错误,第二个参数则接受salt。

或者,您可以按以下说明使用承诺:https://github.com/NodeRedis/node_redis#promises

示例为:

const {promisify} = require('util');
const getUserSaltAsync = promisify(getUserSalt);

getUserSaltAsync(client, "some_username").then(salt => {console.log(salt);});

当然,您还需要以某种方式处理承诺中的错误。

答案 1 :(得分:0)

import redisClient from "../config/redisConfig";
import util from "util";
let hgetall = util.promisify(redisClient.hgetall).bind(redisClient);

await hgetall("key") // This way you will be getting the value instead of true