Node.js NodeJS输出不';t在Windows中正确显示字符串“;cmd";

Node.js NodeJS输出不';t在Windows中正确显示字符串“;cmd";,node.js,cmd,Node.js,Cmd,My NodeJS console.log()函数不再在窗口的cmd中正确显示字符串。它们呈现为具有黑色背景的黑色文本。我不记得改变了任何可能导致这种情况的东西 我很确定这是颜色,虽然不是终端本身的颜色(我已经尝试过改变这些颜色),因为当我复制文本时,它有正确的输出。我已经包括了它的外观截图 截图: 文本输出: { key1: 'value', key2: 51, key3: 2019-05-31T08:05:51.492Z, key4: [ '12', '23', '24' ]

My NodeJS console.log()函数不再在窗口的cmd中正确显示字符串。它们呈现为具有黑色背景的黑色文本。我不记得改变了任何可能导致这种情况的东西

我很确定这是颜色,虽然不是终端本身的颜色(我已经尝试过改变这些颜色),因为当我复制文本时,它有正确的输出。我已经包括了它的外观截图

截图:

文本输出:

{ key1: 'value',
  key2: 51,
  key3: 2019-05-31T08:05:51.492Z,
  key4: [ '12', '23', '24' ] }
还有其他人有同样的问题吗?是什么导致了这一切(并非总是这样)


编辑:根据我收集的信息,Object.toString方法导致对象显示不正确。节点告诉我它是本机代码。导致此问题的原因是什么?

看起来可能是有人对控制台.log进行了修补,并在写入输出之前使用了类似的颜色

我会在您的团队中四处询问,并在您的源代码存储库中搜索控制台


如果可以的话,检查不同环境下的行为,以了解它是否是特定于您的机器的,比如您的终端配置。

因此我找到了答案。有些东西(我不知道是什么,我怀疑我是无意中做的)改变了注册表中的一些cmd颜色,导致它们变成黑色。我不知道是什么导致了这一切,但至少现在起作用了。如果您遇到同样的问题,请在
HKEY_CURRENT_USER\Console
中查找颜色值,并查看某些颜色表值是否为零。我能够找到另一个用户的一些值,虽然它们与最初设置的值不完全相同,但他们已将其修复。

您知道如何检查函数是否被哪个文件覆盖?据我所知,您无法通过编程可靠地进行检查,我可能会浏览代码和节点模块,看看是否可以找到
console
console.log的分配。它可能是完全其他的东西,比如有人重定向stdout并修改它。使用动态语言很难说:)显然Object.toString方法有问题。我不知道如何检查这是从哪里来的。编辑:显然这是本机代码。我应该检查我的cmd窗口吗?