Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从Node.JS中的未捕获异常恢复大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
好的,所以我有一个问题。如果在处理HTTP请求时发生未捕获的异常,则我无法在http.ServerResponse对象上调用end()方法。因此,服务器永远挂起,永远不会满足请求。

以下是一个例子:

var express = require('express');
var app = express.createServer();
var reqNum = 0;
app.get('/favicon.ico',function(req,res) {res.send(404);});
app.get('*',res,next) {
    console.log("Request #",++reqNum,":",req.url);
    next();
});
app.get('/error',next) {
    throw new Error("Problem occurred");
});
app.get('/hang',next) {
    console.log("In /hang route");
    setTimeout(function() {
        console.log("In /hang callback");
        if(reqNum >= 3)
            throw new Error("Problem occurred");
        res.send("It worked!");
    },2000);
});
process.on('uncaughtException',function(err) {
    console.log("Uncaught exception!",err);
});
app.listen(8080);

如果您访问/错误,则会发生异常,但会被捕获。用户收到错误消息 – 没问题。如果我访问/挂起,服务器最终会抛出一个未捕获的异常并永久挂起。任何后续的/ hang请求都会挂起。

这吸吮任何建议如何解决这个问题?

解决方法

一个未捕获的异常发生时,你处于不洁净的状态。让进程死机并重新启动,没有什么可以做的,以安全地将其恢复到已知的状态。使用 forever,一旦它死亡,它会重新启动你的过程。

大佬总结

以上是大佬教程为你收集整理的从Node.JS中的未捕获异常恢复全部内容,希望文章能够帮你解决从Node.JS中的未捕获异常恢复所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: