节点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']
的目标是什么?