Node.js 如何处理节点js应用程序错误以防止崩溃

Node.js 如何处理节点js应用程序错误以防止崩溃,node.js,Node.js,我不熟悉node,我称之为真正的服务器端编程(vs-PHP)。我用MongoDB、Mongoose和一个简单的Mongoose用户插件建立了一个用户数据库,该插件附带了一个模式和密码。您可以为您的字段向Mongoose添加验证,如下所示 schema.path('email').validate(function (email) { if (this.skipValidation) return true return email.trim().length }, 'Plea

我不熟悉node,我称之为真正的服务器端编程(vs-PHP)。我用MongoDB、Mongoose和一个简单的Mongoose用户插件建立了一个用户数据库,该插件附带了一个模式和密码。您可以为您的字段向Mongoose添加验证,如下所示

schema.path('email').validate(function (email) {
    if (this.skipValidation) return true
    return email.trim().length
  }, 'Please provide a valid email')
(这不是我的代码)。但我注意到,当我发送一封无效或空白的电子邮件时,.trim()失败,整个服务器崩溃。这让我非常担心,因为像这样的事情不会发生在你的好朋友堆里。如果你有一个bug,99.9%的时间都是浏览器受到影响

既然我正在钻研低级编程,我是否必须对一个简单函数的每个传入变量都心存疑虑?是否有一个我应该遵循的真实错误系统?

你可以考虑使用来保持你的No.js程序运行。即使它崩溃,它也会自动重新启动,并记录错误


注意:虽然您实际上可以捕获所有异常以防止node.js崩溃,但不建议这样做。

我们的策略之一是使用node.js域来处理错误-

在使用带有trim的变量之前,只需检查一下,如果是!空,例如:

if(!email) {
    return false;
}
如果你想永远运行你的应用程序,那就用PM2吧。
如果您对永远运行感兴趣,请阅读这篇有趣的文章。您应该设置一个错误日志节点,例如,一旦配置,就会产生有用的错误/异常

了解如何捕获节点实现中的错误,尽管特定于expressjs,但与此相关

一旦捕捉到异常,它将防止意外的崩溃