Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测到错误时Node.js应用程序崩溃_Node.js_Express - Fatal编程技术网

检测到错误时Node.js应用程序崩溃

检测到错误时Node.js应用程序崩溃,node.js,express,Node.js,Express,每次出现错误(语法、未定义变量等),我的node.js(Express.js)应用程序都会崩溃 是否有任何解决方案只需记录它,而不使我的应用程序崩溃?我阅读了node.js Error的文档,但找不到解决方案 我从express generator生成了应用程序。我说的是语法错误,变量未定义,但服务器正在运行:它没有崩溃,这取决于错误,但大多数情况下答案是否定的。 如果错误导致应用程序崩溃,则应用程序可能需要运行该错误。 如果您谈论的是特定错误,您需要分享这些错误的详细信息。 关于节点中的错误处

每次出现错误(语法、未定义变量等),我的node.js(Express.js)应用程序都会崩溃

是否有任何解决方案只需记录它,而不使我的应用程序崩溃?我阅读了node.js Error的文档,但找不到解决方案


我从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));
});