检测到错误时Node.js应用程序崩溃
每次出现错误(语法、未定义变量等),我的node.js(Express.js)应用程序都会崩溃 是否有任何解决方案只需记录它,而不使我的应用程序崩溃?我阅读了node.js Error的文档,但找不到解决方案检测到错误时Node.js应用程序崩溃,node.js,express,Node.js,Express,每次出现错误(语法、未定义变量等),我的node.js(Express.js)应用程序都会崩溃 是否有任何解决方案只需记录它,而不使我的应用程序崩溃?我阅读了node.js Error的文档,但找不到解决方案 我从express generator生成了应用程序。我说的是语法错误,变量未定义,但服务器正在运行:它没有崩溃,这取决于错误,但大多数情况下答案是否定的。 如果错误导致应用程序崩溃,则应用程序可能需要运行该错误。 如果您谈论的是特定错误,您需要分享这些错误的详细信息。 关于节点中的错误处
我从express generator生成了应用程序。我说的是语法错误,变量未定义,但服务器正在运行:它没有崩溃,这取决于错误,但大多数情况下答案是否定的。 如果错误导致应用程序崩溃,则应用程序可能需要运行该错误。 如果您谈论的是特定错误,您需要分享这些错误的详细信息。
关于
节点中的错误处理,这可能是一篇很好的文章
您可以捕捉到错误,但您不应该在错误是您的错误的情况下执行此操作,因为在发生此类错误后,它处于不可预测的状态。最好重新启动整个应用程序(nodemon,永远)。错误,如未到达数据库、验证、承诺中的错误。。。你应该抓住它
对于第二个问题,您可以将事件用于未处理的错误
process.on('uncaughtException', err => {})
我解决了这个问题。变量未定义时(错误)
我在应用程序的主app.js文件的最后插入了这段代码
(response.error是自定义消息的自定义函数)
我车里的发动机坏了。有没有办法在记录错误的同时驾驶它?@Craicerjack这是对的,但在你的情况下:))什么是asfa
,为什么它只是写在你的路线上<代码>路由器.get('/',函数(req,res,next){asfa res.render('index',{title:'Express'});})
,此路由中包含的asfa
defined@Craicerjack我给崩溃的应用程序写了“asfa”,但它仍然在工作。如果我写了这样的东西,我的应用程序就会崩溃this@Craicerjack如果你足够强壮,你总是可以用手推汽车。朱利安的解决方案对我有效。
app.use(function(err, req, res, next) {
res.status(err.status || 500).json(response.error(err.status || 500));
});