我正在制作一款游戏,当我尝试获取用户数时,我想创建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)
答案 0 :(得分:1)
这意味着它正在尝试将对象转换为json,并且树中有一个成员指向其中一个父对象。由于递归,这将创建一个无限深的json文件
答案 1 :(得分:1)
JSON.stringify()无法转换具有循环引用的对象。无论'ev'是什么,它都以某种方式引用自身。
例如, DOM节点有ownerDocument
个,它引用document
。 document
最终通过document.body.ownerDocument
引用自身。