2017-04-10 16 views
-1

forループの外側にある変数 "onlinehub"と "offlinehub"にアクセスしようとしていますが、変数は最初の宣言値のみを出力します。それを行う他の方法はありますか?Nodejsのループの外部変数を取得する方法

app.get('/test', function(req, res) { 
    client.keys('hub*', function (err, keys) { 
    console.log(keys.length); 
    for (var i=0; i<keys.length; i++){ 
    client.hgetall(keys[i], function(err, reply) { 
    if(reply.status == "online"){ 
     onlinehub++; 
    } 
    else if(reply.status == "offline"){ 
     offlinehub++; 
    } 
    }); 
    } 
    // for (var i=0; i<reply.length; i++){ 
    // console.log(reply.id) 
    // } 
    console.log(onlinehub +"-" +offlinehub) 

    }); 
}); 

答えて

-1

グローバル変数を2つ作成し、それらにonlinehubの値を割り当ててforループの外側で使用することができます。

var global_onlinehub=0; 
var global_offlinehub=0; 
app.get('/test', function(req, res) { 
client.keys('hub*', function (err, keys) { 
console.log(keys.length); 

for (var i=0; i<keys.length; i++){ 
client.hgetall(keys[i], function(err, reply) { 
if(reply.status == "online"){ 
global_onlinehub= onlinehub++; 
} 
else if(reply.status == "offline"){ 
    global_offlinehub=offlinehub++; 
} 
}); 
} 
// for (var i=0; i<reply.length; i++){ 
// console.log(reply.id) 
// } 
console.log(global_onlinehub +"-" +global_offlinehub) 

}); 
}); 
関連する問題