Node.js 为什么nodejs在未声明的变量上会自动失败?

Node.js 为什么nodejs在未声明的变量上会自动失败?,node.js,debugging,Node.js,Debugging,为什么nodejs在未声明的变量上会自动失败?它什么也没说,没有堆栈跟踪,等等。这是调试最糟糕的情况 我如何让它像其他语言一样吵闹 这是一个用nodejs编写的小命令行实用程序。它不像大多数人制作的那样是一款网络应用程序。我同意。它按预期工作,我很高兴地移植代码,一切都很好,除了我输入了一个错误,然后它就悄无声息地失败了 // Typo: should be var or const foo but I missed it and I want nodejs to error about it

为什么nodejs在未声明的变量上会自动失败?它什么也没说,没有堆栈跟踪,等等。这是调试最糟糕的情况

我如何让它像其他语言一样吵闹

这是一个用nodejs编写的小命令行实用程序。它不像大多数人制作的那样是一款网络应用程序。我同意。它按预期工作,我很高兴地移植代码,一切都很好,除了我输入了一个错误,然后它就悄无声息地失败了

// Typo: should be var or const foo but I missed it and I want nodejs  to error about it like any other language
foo = func();
我从某个地方得到了一个暗示,承诺是在压制这样的错误。如果是这样的话,原因是什么,是否有一个解决办法,最好是让它大声死去


谢谢

开枪打我。我没能在上面记录拒绝承诺的结果。一旦我把它放进去,我就开始看到错误和堆栈跟踪,这非常有用

如果我记得记录所有拒绝错误,这将很好

神奇之处在于promises将使用异常,并将它们作为结果对象自动发送给拒绝处理程序

这个问题+答案很有帮助:


它没有失败,因为它不应该。这在JS中是完全合法的。是的,当您无法记录或处理承诺拒绝时,您将自己设置为默默地接受错误,这就是node.JS警告您不要这样做的原因。这就像对同步异常使用try/catch,其中包含一个空的catch,如:catch{/*doNothing*/}。