【问题标题】:Storing redis hget values into a variable in nodejs将redis hget值存储到nodejs中的变量中
【发布时间】:2018-05-02 23:41:59
【问题描述】:
const redis = require('redis');
var client = redis.createClient();

client.on('error', function(err){
  console.log('Something went wrong ', err)
});


var getResponse = (key, field) =>{
 client.hget(key,field, function(err,reply){
    if(!err) return reply; 
    else {
    console.log(err);
    }
  });
};

var s = getResponse("employee","b");
console.log(s);

所以当输出显示undefined时。我究竟做错了什么?如何将返回值存储到s中?

【问题讨论】:

    标签: javascript node.js redis


    【解决方案1】:

    您可以使用如下回调:

    var getResponse = (key, field, success, error) =>{
        client.hget(key,field, function(err,reply){
            if(!err) {
               success(reply);
             }
           else {
              error(err);
            }
       });
    };
    
    getResponse("employee","b",function success(reply){
        //here you get the reply
    }, function error(err) {
            //error
    });
    

    如果您使用的是 Node 6 或更高版本,您可以使用 promise 或 async await。您可以在以下链接中找到更多详细信息:http://exploringjs.com/es6/ch_promises.html

    【讨论】:

    • 我想,我的查询要足够清楚。在我的原始代码中,如果使用 console,log(reply);而不是 return reply 它给出了正确的输出。我想要的是将该输出存储到一个变量中。我怎么做?是否存在数据类型不匹配?
    • 如果您想将回复值存储到变量中,然后对其进行操作,您应该在成功回调中执行此操作。成功回调是您可以确定获得值的地方。 (异步行为)。
    猜你喜欢
    • 1970-01-01
    • 2012-10-21
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多