2

ゲームを作っているのですが、ユーザー数を取得しようとすると、2ユーザールームを作りたいです。

io.sockets.emit('roomUsers', io.sockets.clients(openRoom).lenght);

node.jsがクラッシュする

これは私が取得したログです。それが何を意味するのかわかりません。

/Users/ilya/game-app-1/node_modules/socket.io/lib/parser.js:75
      data = JSON.stringify(ev);
                  ^
TypeError: Converting circular structure to JSON
    at Object.stringify (native)
    at Object.exports.encodePacket (/Users/ilya/game-app-1/node_modules/socket.io/lib/parser.js:75:19)
    at SocketNamespace.packet (/Users/ilya/game-app-1/node_modules/socket.io/lib/namespace.js:154:23)
    at SocketNamespace.emit (/Users/ilya/game-app-1/node_modules/socket.io/lib/namespace.js:188:15)
    at Socket.<anonymous> (/Users/ilya/game-app-1/app.js:101:14)
    at Socket.EventEmitter.emit [as $emit] (events.js:96:17)
    at SocketNamespace.handlePacket (/Users/ilya/game-app-1/node_modules/socket.io/lib/namespace.js:335:22)
    at Manager.onClientMessage (/Users/ilya/game-app-1/node_modules/socket.io/lib/manager.js:488:38)
    at WebSocket.Transport.onMessage (/Users/ilya/game-app-1/node_modules/socket.io/lib/transport.js:387:20)
    at Parser.<anonymous> (/Users/ilya/game-app-1/node_modules/socket.io/lib/transports/websocket/hybi-16.js:39:10)
4

2 に答える 2

1

JSON.stringify()は、循環参照を持つオブジェクトを変換できません。'ev'が何であれ、それはそれ自体の内部で何らかの方法でそれ自体を参照します。

たとえば、DOMノードにはownerDocumentsがあります。これは。を参照しdocumentます。documentを介して自分自身を参照することになりますdocument.body.ownerDocument

于 2013-02-08T18:50:31.670 に答える
1

これは、オブジェクトをjsonに変換しようとしていて、その親の1つを指すメンバーがツリーの下にあることを意味します。これにより、再帰が原因で無限に深いjsonファイルが作成されます

于 2013-02-08T18:45:27.897 に答える