2017-11-12 5 views
0

socket.ioで私の部屋リストを見たいと思います。socket.ioオブジェクトの解析中に[オブジェクトオブジェクト]を読みやすくするには

ただし、コンソールは[オブジェクトオブジェクト]のみを返します。

私のコードはこれです。

io.on('connection', function (socket) { 
    var rooms = io.sockets.adapter.rooms; 
    console.log('rooms: '+rooms); 
} 

そして、私のコンソールログは

rooms: [object Object] 

それについて奇妙な何かがあります。

私はコードを書いています。

for (var key in rooms){ 
    console.log('key: '+key); 
} 

次に、コンソールに接続されたクライアントのsocket.idを書き込みます。

console.log('rooms: ', rooms); 

オブジェクトを使用して文字列操作でそれとデフォルトで呼び出さ取得する.toString()が発生します、このような本にこの

console.log('rooms: '+rooms); 

からの変更は

key: iFUdbwRtB5oRMcf3AAAA 
+0

JSON.parse(JSON.stringify)(キー)のようなあなたの鍵オブジェクトを解析してみてください。 – amanpurohit

答えて

0

として

オブジェクトの文字列変換は[object Object]です。 console.log()でオブジェクトを直接出力すると、オブジェクトの実際の内容が表示され、一般的な文字列変換を試みるだけではありません。

1

あなたは、単に部屋を文字列化できます

console.log('rooms: ', JSON.stringify(rooms, null, 10)); 
+0

'JSON.stringify()'は循環参照があるときは機能せず、 'io.sockets.adapter.rooms'の中に循環参照があると思います。また、 'console.log()'にオブジェクトを出力させるだけであれば、(複雑なオブジェクトを展開したり折りたたんだりすることができるので)コンソールウィンドウで結果をより簡単にナビゲートして見ることができます。 – jfriend00

関連する問題