如何 console.log 大对象? [复制]
Posted
技术标签:
【中文标题】如何 console.log 大对象? [复制]【英文标题】:How to console.log large object? [duplicate] 【发布时间】:2015-03-25 03:40:57 【问题描述】:我正在尝试查看对象包含的内容
使用console.log(obj)
,控制台从线条中截断,我看不到整个结构。
然后我尝试将其写入文件
fs.writeFile('test', JSON.stringify(obj));
但是我得到一些关于循环引用的错误。
还有其他方法可以查看对象吗?该对象是来自 nodejs websocket 模块的“连接”。文档很差,我似乎找不到保存 IP 地址的属性:(
【问题讨论】:
只是一个建议,放置一个断点并从浏览器中检查以查看该对象的内容。 但节点的东西在 linux 服务器上运行。我只能向浏览器发送文本。但如您所见,我无法将其转换为 json ***.com/questions/10729276/… 【参考方案1】:fs.writeFile('test', JSON.stringify(obj));
但我收到一些关于循环引用的错误。
这就是 JSON 的情况。 JSON 也会忽略函数、正则表达式、日期等。
您可以使用util.inspect
,这是Node 的console.log()
在内部使用来获取整个对象,然后可以将其写入文件:
var util = require('util');
fs.writeFileSync('test.txt', util.inspect(obj));
如果你想要无限的深度和隐藏的属性:
util.inspect(obj, showHidden: true, depth: null )
【讨论】:
唯一有效的答案。交易【参考方案2】:我以前从未使用过console.dir
,这很可能是正确的方法。然而,我一直在做的只是将我想要查看的内容分配给一个全局变量,然后直接在控制台中使用它。
类似这样的:
var x;
function xyz()
// Code
x = obj;
然后,直接在控制台中,如果您键入 x,在 xyz 运行后,您的对象就在那里,并且可以使用它的副本,包括查看所有属性和修改它的能力。
【讨论】:
【参考方案3】:我相信你可以使用dir方法
console.dir(obj)
不客气;)
【讨论】:
【参考方案4】:使用 dir 方法。
console.dir(obj)
【讨论】:
打印同样的东西。我认为这仅适用于浏览器? 此方法按原样显示对象的内容。您可以浏览整个对象。你说的“切割”是什么意思? 终端的东西只显示几百行,其余的被截掉 哇,太棒了,谢谢。我认为大多数人在浏览器中使用 javascript? 有趣的是,console.dir 工作的 50% 的人没有工作。对我来说,console.dir 输出与console.log 完全相同。它夹住对象并将其打印为文本。我想让它们折叠/展开格式以上是关于如何 console.log 大对象? [复制]的主要内容,如果未能解决你的问题,请参考以下文章