gpt4 book ai didi

javascript - 如何在nodejs中正确使用域

转载 作者:太空宇宙 更新时间:2023-11-04 01:12:33 24 4
gpt4 key购买 nike

我尝试使用domains核心模块而不是process.on('uncaughtException')来捕获错误

function setupDomains(req, res, next) {
var reqd = domain.create();

reqd.add(req);
reqd.add(res);
reqd.on('error', function(err) {
console.log(err);
req.next(err);
});
res.on('end', function() {
console.log('disposing domain for url ' + req.url);
reqd.dispose();
});
reqd.run(next);
}

并在express中用作中间件但似乎

 res.on('end', function() {
console.log('disposing domain for url ' + req.url);
reqd.dispose();
});

没有被调用

我想在响应结束时处置域

如何正确地做到这一点,或者也许我不必这样做?

最佳答案

我发现的关于如何执行此操作的最佳示例来自 Node.js 文档。

http://nodejs.org/api/domain.html#domain_warning_don_t_ignore_errors

正如本页开头附近所指出的,捕获异常、记录并继续前进不是一个好主意。相反,您应该记录它并重新启动该过程。

文档中包含的示例将关闭发生异常的 Node 进程并重新启动新的进程。这是调用 dispose 并继续处理下一个请求的首选选项。

如果您确定要dispose 域成员,只需将 dispose 调用放在 domain.on('error') 处理程序的开头,如本 post 中所述。 .

如果确实如此,请不要忘记将其标记为正确答案。

关于javascript - 如何在nodejs中正确使用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15129480/

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