gpt4 book ai didi

node.js - 表达错误处理或域?

转载 作者:行者123 更新时间:2023-12-03 08:07:40 24 4
gpt4 key购买 nike

我正在用nodejs和express构建一个应用程序。谁能帮助我了解以下代码段之间的区别:

  var app = express();
app.use(function(err, req, res, next){
console.error(err);
res.render('home.ejs', {message:'Something broke!'});
});


 var domain = require('domain');
var d = domain.create();
d.on('error', function(err) {
console.error(err);
res.render('home.ejs', {message:'Something broke!'});
});

这两段代码是替代的吗?如果是,为了避免应用程序在生产时崩溃,哪个更可靠?

最佳答案

Express将每个function (req, res, next) {}包装在try/catch中。捕获许多错误,但不捕获异步错误。域捕获异步错误。但是,捕获错误并进行处理是两件事。

如果您接下来遇到错误(又名d.on('error', next);),则最终将要表达错误中间件,就像您的第一个示例一样。

因此,与其考虑 express 与域名,不如考虑try/catch与域名。无论哪种情况,都应使用Express处理错误。

关于node.js - 表达错误处理或域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24374429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com