2014-09-24 63 views
2

为了尽可能简洁,我试图弄清楚是否有一种方法允许控制台使用console.log显示对象的完整内容( )。我在Sublime Text 3中使用了传递到控制台的node.js。我没有任何问题运行代码本身,只是显示输出。输出在sublime文本的node.js输出中被截断

我有像这样创建链接列表对象:

{ value: 1, next: { value: 2, next: { value: 3, next: { value: 4, next: { value: 5, next: null}}}}} 

当它输出到控制台似乎类似于以下:

{ value: 1, next: 
    { value: 2, next: { value: 3, next: [Object]}} 

总之,的整体对象不可见或以任何方式展开。有什么办法可以强制控制台变得更加冗长,并显示整个对象吗?

回答

2

您可以做的一种方法是将您的JSON转换为字符串。

所以,如果你的文件内容被提取到变量x中。您可以这样做:

console.log(JSON.stringify(x)); 

这会将您的JSON数据转换为可轻松打印到控制台的字符串。

这里是另一个解决方法:

console.log(require('util').inspect(x, {showHidden: false, depth: null})); 

的事情是,执行console.log由打印字符串,而不是对象。因此,它会自动尝试将所有内容都转换为字符串,并且在该过程中(因为自动转换不是将对象转换为字符串的正确方式),因此某些数据会丢失。

您可以使用第二个解决方法,但我强烈建议您坚持第一个,因为这是更好的方法。

+0

这是一个可以接受的解决方法,但我不得不将所有东西串联起来,这使得阅读起来更加困难。对象输出的限制是在node.js中配置的吗? – Scott 2014-09-24 23:56:13

+1

@Scott我编辑了我的答案来掩饰你的顾虑。 – 2014-09-25 16:59:52

+0

调用深度标志进行检查是这里真正的修复。 – 2014-09-25 17:03:21