当前位置: 首页 > 面试题库 >

使node.js不会因错误而退出

庾兴发
2023-03-14
问题内容

我正在使用Socket.IO在面向Websocket的node.js服务器上工作。我注意到一个错误,其中某些浏览器未遵循与服务器的正确连接过程,并且未编写代码来妥善处理该错误,总之,它调用了一个从未设置的对象的方法,从而杀死了该对象服务器由于错误。

我特别关注的不是错误,而是当发生此类错误时,整个服务器都将关闭。我可以在节点的全局级别上做任何事情来做到这一点,因此,如果发生错误,它将仅记录一条消息,也许会杀死该事件,但是服务器进程将继续运行?

我不希望其他用户的连接断开,因为一个聪明的用户在包含的大型代码库中利用了未捕获的错误。


问题答案:

您可以将侦听器附加到uncaughtException流程对象的事件。

来自实际的Node.js API参考的代码(这是“过程”下的第二项):

process.on('uncaughtException', function (err) {
  console.log('Caught exception: ', err);
});

setTimeout(function () {
  console.log('This will still run.');
}, 500);

// Intentionally cause an exception, but don't catch it.
nonexistentFunc();
console.log('This will not run.');

您现在要做的就是记录它或对其进行处理,以防万一,您知道在什么情况下会发生错误,您应该在Socket.IO的GitHub页面上提交错误:https :
//github.com/ LearnBoost /
Socket.IO节点/问题



 类似资料:
  • 在为我们开发的库构建Android Studio项目的Javadocs时,我们的Gradle构建脚本失败,错误如下: /MY_LOCAL_PATH/MyClass。java:5:error:package-com。谷歌。gson不存在导入com。谷歌。格森。格森; 详情: 我们正在用构建一个Android库,并希望为它构建。 Android Studio项目被配置为需要的,尽管我猜测它会发生在没有

  • 这里的主要错误是do-while循环不会退出。该计划的前提是从一个行星跳到另一个行星,而planetName是目的地,current是您当前所在的行星。我想要的是当电流为“Io”时退出循环。每次“跳转”到另一个行星后,目的地即成为当前行星。我已经测试过了,当电流在 然而,循环仍在继续。

  • 问题内容: 我有一个名为“ FechasFirmaHorometros”的视图,定义为 我有一个名为[RespuestaPreguntaHorometrosFecha]的函数定义为 在调试使用该函数的另一个存储过程时,我一直在碰到上述函数时收到此消息 但是我可以自由地做类似的事情 为什么会发生这种情况,我该如何解决或解决呢? 问题答案: 由于某种原因,我认为这是某种类型的字符串列。您应该解决该问题

  • 这段代码有错误 问题是,我使用了'await'而没有将方法声明为'async',但是node.js给我的错误非常不清楚,根本没有帮助我弄清楚它。 我能做些什么来让类似这样的错误在将来变得更清楚吗?

  • Python 3.5。2. Ubuntu 16.04 LTS 尝试使用pip3安装某些软件包时,无论参数如何,它都会返回以下结果: 我试图通过以下方式重新安装python3 pip来修复它: 但那没有帮助。 我发现它与我安装的软件包有关,这些软件包是用

  • 问题内容: 我是tensorflow和Machine Learning的新手。最近,我正在制作模型。我的模特如下 字符级嵌入向量->嵌入查找-> LSTM1 字级嵌入向量->嵌入查找-> LSTM2 [LSTM1 + LSTM2]->单层MLP-> softmax层 [LSTM1 + LSTM2]->单层MLP-> WGAN鉴别器 他的模型代码 当我使用此模型时,出现以下错误。我以为我的批次太大了