输出在Sublime Text中的node.js输出中被截断

时间:2014-09-24 13:44:18

标签: javascript node.js console sublimetext3

为了尽可能简洁,我试图弄清楚是否有办法允许控制台使用console.log()显示对象的全部内容。我使用node.js管道进入Sublime Text 3中的控制台。我没有运行代码本身的问题,只显示输出。

我有一个我创建的链表对象:

{ 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]}}

简而言之,整个对象无论以任何方式都是不可见或可扩展的。有什么方法可以强制控制台更详细并显示整个对象吗?

1 个答案:

答案 0 :(得分:2)

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

因此,如果您的文件内容是在变量x中获取的。你可以这样做:

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

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

这是另一种解决方法:

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

问题是console.log用于打印字符串,而不是对象。因此,它会自动尝试将所有内容转换为字符串,并且在此过程中(因为自动转换不是将对象转换为字符串的正确方法),一些数据会丢失。

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