节点js redis遍历每个散列键值

我对redis&node非常陌生,现在我试图通过一些我已经创build并打印出来的testing哈希键进行循环来筛选结果。 这是我期望看到的结果:

{ "aaData": [['Tim Osbourne'],['Joe Bloggs'],['John Doe'],['Perry Coke'],['Will Holmes'],['Steven Smith']} 

但是我得到这个结果:

 { "aaData": [[],[],[],[],[],[],]}'Tim Osbourne','Joe Bloggs','John Doe','Perry Coke','Will Holmes','Steven Smith', 

这是我的代码:


     app = require('../ app');
     var redis = require(“redis”),
     client = redis.createClient();
     routes = require('./');
     var key_types ='';

     client.keys(“*”,函数(err,all_keys){
         key_types + ='{“aaData”:[';

         all_keys.forEach(function(key,pos){//使用forEach的第二个参数来获取pos      
             key_types + =“[”;

             client.hmget([key,'空间的所有者]],函数(err,field_val){
                 key_types = key_types +“'”+ field_val +“',”;
             });

             key_types + =“],”;
         });

         key_types + =“]}”;               
     });

     app.get('/ table_data',function(req,res){
         res.render('table_data',{keys:key_types});
     });

  • 你不应该做一个keys *
  • 它不工作,因为hmget是asynchronous的,你应该使用async模块(async.map)。

因为'Owner of space'总是会产生相同的结果,所以[key, 'Owner of space'] 'Owner of space' [key, 'Owner of space']的目标是什么?