我正在使用redis + nowjs.我想知道如何处理hgetall()的结果?当我尝试在客户端显示"结果"时,我只得到[object Object](它可能是来自服务器端js的字符串).
// Redis结果是
redis> HSET cards:lightning-bolt name "Lightning Bolt" (integer) 1 redis> HSET cards:lightning-bolt text "Blah blah blah" (integer) 1 redis> HGETALL cards:lightning-bolt 1) "name" 2) "Lightning Bolt" 3) "text" 4) "Blah blah blah" redis>
//在我的服务器js中
everyone.now.signalShowRedisCard = function(card_id) { var self = this; client.hgetall(("cards:%s" % card_id), function (err, res) { nowjs.getGroup(self.now.room).now.receiveShowRedisCard(res); }); }
//在我的客户端js中(警报只输出[object Object])
now.receiveShowRedisCard = function(card_data) { alert("redis card: "+card_data); try { console.log('card data: '+ card_data); } catch(e) { console.log("Firebug not installed."); } }
有任何想法吗?任何回复表示赞赏.
当使用hgetall时,你会得到一个对象数组.根据场景,它可以像这样处理:
getItems = function(callback){ client.hgetall("myhash",function(err, res){ var items = []; for (i in res) { items.push(JSON.parse(res[i])); } callback(items); }); };