如何console.log大对象?

How to console.log large object?

我正在尝试查看对象包含的内容

有了console.log(obj),控制台的线条就被切断了,我看不到整个结构。

然后我尝试将其写入文件

fs.writeFile('test', JSON.stringify(obj));

但是我得到一些关于循环引用的错误。

有没有其他方法可以查看对象哈哈?该对象是来自 nodejs websocket 模块的 "connection"。文档很差,我似乎找不到包含 IP 地址的 属性 :(

使用 dir 方法。

console.dir(obj)

我相信你可以使用 dir 方法

    console.dir(obj)

不客气;)

我以前从未使用过 console.dir,这很可能是正确的方法。然而,我一直做的只是将我想看的东西分配给一个全局变量,然后直接在控制台里玩。

像这样:

var x;
function xyz(){
    // Code
    x = obj;
}

然后,直接在控制台中,如果您键入 x,在 xyz 具有 运行 之后,您的对象就在那里,并且可以使用它的副本,包括查看所有属性的能力,并修改它。

fs.writeFile('test', JSON.stringify(obj));

But I get some error about circular references.

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 })