2017-02-01 4 views
0

Je veux obtenir toutes les valeurs de mes Redis et le stocker dans un tableau dans nodejsComment récupérer les valeurs Redis dans un tableau dans NodeJS

Voici mon code actuel,

redisClient.keys("Serial*", function (err, keys) { 
    keys.forEach(function (key, i) { 
     redisClient.hgetall(key, function (err, currencyData) { 
      console.log(currencyData); 
     }) 
    }); 
}); 

il me permet à la sortie de toutes les valeurs à la console mais je dois utiliser ces valeurs

Répondre

1

en supposant que vous avez besoin d'un currencyData le dans un tableau -

function getAllCurrency(callback){ 
    redisClient.keys("Serial*", function (err, keys) { 
     var allCurrencyData = []; 
     var counter = keys.length; 
     keys.forEach(function (key, i) { 
      redisClient.hgetall(key, function (err, currencyData) { 
       if(err) 
        return callback(err); 
       console.log(currencyData); 
       allCurrencyData.push(currencyData); 
       counter--; 
       if(counter == 0) 
        callback(null, allCurrencyData); 
      }) 
     }); 
    }); 
} 

Calling d'une autre fonction -

getAllCurrency(function(err, allCurrency){ 
    // use allCurrency array here 
}); 

Ce n'est pas le meilleur code. L'ordre des éléments dans le tableau peut également ne pas être le même que le tableau de clés. Pour un meilleur contrôle asynchrone, essayez d'utiliser la bibliothèque async ou Promises.

+0

'allCurrencyData' ne peut pas être modifié à partir d'une autre fonction. ici 'hgetall' est une fonction ' allCurrencyData' sera une variable séparée lorsqu'il est utilisé dans 'hgetall' – ericdemo07

+0

@ ericdemo07 My bad. Veuillez vérifier la réponse éditée. –