gpt4 book ai didi

javascript - 如何在 http.ServerResponse 对象上调用 end() ?

转载 作者:行者123 更新时间:2023-12-02 19:26:39 26 4
gpt4 key购买 nike

我找到了接受的answer in this question回答我的错误处理问题。

请注意注释 - 需要完成 http.ServerResponse 以便应用程序最终不会耗尽内存 - 这是一个问题。

如何实现类似的东西呢?回调函数如何访问该对象?

最佳答案

正如 this post 的答案中提到的- 如果你有一个未捕获的异常,你最好的方法是让进程终止并从那里恢复 - 否则你不知道应用程序的当前状态是什么。

因为你没有捕获异常,这表明应用程序不知道发生了什么。为了解决这个问题 - 您可以将应用程序设计为许多小块,而不是一个流程。

这会对性能造成轻微影响(RPC 与进程内通信),但这意味着您可以轻松休眠,同时小块出错,重新启动,一切都很好,因为它们从不维护自身状态(为此使用 Redis)。 ..

如果您确实想捕获请求中的异常,然后在请求上调用 end(),则必须使用可访问响应的闭包,如下所示:

// a method that will catch an error and close the response
var runFunctionSafely = function(res, tryFunction){
try{
tryFunction();
}
catch(error){
console.log('there was an error, closing the response...');
console.log(error);
res.end();
}
}

app.get('/test', function(req, res, next) {
runFunctionSafely(res, function(){
throw new Error('this is a problem');
})
});

关于javascript - 如何在 http.ServerResponse 对象上调用 end() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11972081/

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