私はredis + nowjsを使用しています。 hgetall()の結果を処理する方法を知りたいですか? "result"をクライアント側で表示しようとすると、私は[object Object]を取得します(これはおそらくサーバー側のjsからの文字列です)。nodejs(nowjs)のhgetall()の結果をどのように扱うか?
// Redisの結果は私のクライアントのjs(警告だけ出力[対象オブジェクト])
now.receiveShowRedisCard = function(card_data) {
alert("redis card: "+card_data);
try {
console.log('card data: '+ card_data);
} catch(e) {
console.log("Firebug not installed.");
}
}
で私のサーバーの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);
});
}
//で
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>
//です
アイデアすべての返信は高く評価されます。 node_redisのreadmeから
'console.log'で' + 'を使わないでください。オブジェクトに対して直接' console.log'または 'console.dir'を使用してください。 – Raynos
@Raynosありがとう!私は「カードデータ」のプラス記号をつけました: - コンソールに他のコード行が記録されているので、Firebugの特定のログを簡単に見つけることができます...私が使用するときに気づいていない問題はありますか? + + "plus"?オブジェクトを文字列に変換すると思っていますか?そうすれば、おそらく+ lolを使用していたはずです...もう一度おねがいします! – wenbert
あなたのやり方は文字列連結です。 toString'メソッドを使用してください。基本的に、コンソールは 'toString'メソッドの後にデータを記録する方が良いです。' console.log( "card data:"); console.log(card_data); ' – Raynos