Javascript 节点js redis循环遍历每个散列键值
我对redis&node非常陌生,目前我正在尝试循环使用我创建的一些测试哈希键并打印出来以筛选结果。以下是我希望看到的结果:Javascript 节点js redis循环遍历每个散列键值,javascript,node.js,express,redis,hogan.js,Javascript,Node.js,Express,Redis,Hogan.js,我对redis&node非常陌生,目前我正在尝试循环使用我创建的一些测试哈希键并打印出来以筛选结果。以下是我希望看到的结果: { "aaData": [['Tim Osbourne'],['Joe Bloggs'],['John Doe'],['Perry Coke'],['Will Holmes'],['Steven Smith']} 但我得到的结果是: { "aaData": [[],[],[],[],[],[],]}'Tim Osbourne','Joe Bloggs','John Do
{ "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("*", function (err, all_keys) {
key_types += '{ "aaData": [';
all_keys.forEach(function (key, pos) { // use second arg of forEach to get pos
key_types += "[";
client.hmget([key, 'Owner of space'], function(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});
});
app=require('../app');
var redis=需要(“redis”),
client=redis.createClient();
路由=需要('./');
变量键类型=“”;
client.key(“*”,函数(err,所有_键){
键类型+='{“aaData”:[';
所有_key.forEach(函数(key,pos){//使用forEach的第二个参数获取pos
按键类型+=“[”;
client.hmget([key,'Owner of space'],函数(err,field_val){
键类型=键类型+“'”+字段值+“,”;
});
键类型+=“],”;
});
键类型+=“]}”;
});
应用程序获取('/table_data',函数(req,res){
res.render('table_data',{keys:key_types});
});
- 您不应该执行
键*
- 它不工作,因为hmget是异步的,您应该使用
模块(async.map)来实现这一点async
“空间所有者”
总是会产生相同的结果,那么[键,'空间所有者']
的目标是什么