如何在 http 上调用 end().服务器响应对象
How to call end() on the http.ServerResponse Object?
我在这个问题中找到了公认的答案来回答我遇到的错误处理问题。
不过请注意评论 - 一个 http。ServerResponse 需要完成,以便应用程序最终不会耗尽内存 - 这是一个问题。
但是,如何实现这样的东西? 回调函数如何访问所述对象?
正如这篇文章的回答中提到的 - 如果你有一个未捕获的异常,你最好的方法是让进程死并从那里恢复 - 否则你不知道应用程序的当前状态是什么。
由于您没有捕获异常,因此表明应用程序不知道发生了什么。 为了解决这个问题 - 你用很多小块而不是在一个过程中设计你的应用程序。
这对性能(RPC 与进程通信中的 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');
})
});
'uncaughtException'
处理程序无权访问响应对象,因此无法结束响应。 评论的假定要点是,您不应该依赖'uncaughtException'
来满足所有错误处理需求,因为在许多情况下(如提到的),您不在正确处理错误的正确范围内。
相关文章:
- 带Jquery的wep API,加载资源失败:服务器响应状态为404(未找到)
- 如何在 http 上调用 end().服务器响应对象
- 将服务器响应格式化为人类可读
- 尝试获取服务器响应
- 如何在 Javascript 函数中拦截 Web 服务器响应
- 如何从服务器响应中显示phonegap中的图像
- Nodejs-websocket:如何在没有服务器响应的情况下连续发送客户端消息
- 正在分析Meteor中的错误服务器响应
- 正在从LWIP服务器响应中检索16位整数
- 可以´t从对象XMLHttpRequest获取服务器响应
- 试图理解返回javascript方法的服务器响应
- AJAX 中的常见服务器响应页原因
- 节点服务器响应错误: process.nextTick(function(){throw err;});.
- GO 中的长时间轮询,服务器响应不当
- 在 Iframe 中发布服务器响应
- Jquery 响应从服务器响应中修剪值
- 在铁表单提交后检查服务器响应
- 量角器单击链接并将服务器响应与文件进行比较
- 如何确定 Node .js服务器响应是否已停止
- 当服务器响应缓慢时,jQuery 在加载/就绪时不触发