2013-05-10 54 views
1

我想检索的变量“用户”之外的功能:检索的NodeJS一个变量

var users; 

    client.lrange("comptes", 0, -1, function(err, replies) { 

    replies.forEach(function(reply, i) { 
     users = JSON.parse(reply.toString()); 
    }); 
}); 

// here to retrieve the "users" variable 
console.log(users); // = undefined 

function findById(id, fn) { 
    var idx = id - 1; 
    if (users[idx]) { 
    fn(null, users[idx]); 
    } else { 
    fn(new Error('User ' + id + ' does not exist')); 
    } 
} 

function findByUsername(username, fn) { 
    for (var i = 0, len = users.length; i < len; i++) { 
    var user = users[i]; 
    if (user.username === username) { 
     return fn(null, user); 
    } 
    } 
    return fn(null, null); 
} 

我用Qasync模块,但我不知道该怎么做..

谢谢你的帮助 。

回答

0

该变量在您使用的范围内,这意味着如果您从未给出它的值(如果您不计算回调,则不会计算该值),它只能是未定义的。尝试使用行var users = "damn not yet";,这可能是你会在控制台中得到的。这意味着您的回调函数lrange要么未被调用,要么逻辑错误。

+0

它的确定:'函数findByUsername(用户名,FN){ client.lrange( “审计院”,0,-1,函数(ERR,回复){ replies.forEach(功能(答复,我){ users = JSON.parse(reply.toString()); Tusers(users); }); }); 函数对于(var i = 0,len = users.length; i PixelPixel 2013-05-11 16:21:30

0

这样的事情?

getcomptes = function(callback){ 
    client.lrange('comptes', 0, -1, function(err, users){ 
      callback(err, users); 
    }); 
};