2017-11-12 1 views
0

Ich möchte meine Zimmerliste in socket.io suchen.Wie kann ich [Objekt Objekt] lesbar machen während der Analyse von socket.io Objekt

Aber Konsolenrückgabe nur [Objekt Objekt].

Mein Code ist dies.

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

Und mein Konsolenprotokoll ist

rooms: [object Object] 

Es ist etwas merkwürdig es ist.

Ich schreibe Code.

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

Dann, Konsole schreiben socket.id des angeschlossenen Clients.

wie

key: iFUdbwRtB5oRMcf3AAAA 
+0

Versuchen Sie, Ihre Schlüssel-Objekt wie JSON.parse (JSON.stringify (key)) Parsen; – amanpurohit

Antwort

0

Wechsel von diesem

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

dazu:

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

ein Objekt in einem String-Manipulation Verwendung verursacht .toString() auf sie und die Standard genannt werden String-Konvertierung eines Objekts ist [object Object]. Wenn Sie das Objekt direkt mit console.log() ausgeben, wird der tatsächliche Inhalt des Objekts angezeigt und nicht nur eine generische String-Konvertierung versucht.

1

Sie könnten einfach die Zimmer stringify:

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

'JSON.stringify()' funktioniert nicht, wenn es Zirkelverweise gibt und ich denke, dass es innerhalb von 'io.sockets.adapter.rooms' zirkuläre Verweise geben könnte. Wenn Sie außerdem 'console.log()' das Objekt für Sie ausgeben lassen, können Sie einfacher navigieren und die Ergebnisse im Konsolenfenster anzeigen (da Sie komplizierte Objekte erweitern und reduzieren können). – jfriend00

Verwandte Themen