Express 如何处理异常才能让整体不崩溃?
发布于 10 年前 作者 friskit-china 11180 次浏览 最后一次编辑是 8 年前

在平时开发中,遇到异常都throw出去。

请问一下大家都是怎么处理异常的?我发现throw出去的异常有时候会被express内置的异常处理程序获取到,然后渲染了一个error模板。而有时候则会直接导致整个程序的崩溃……

3 回复

用 cluster模块开多核 if(cluster.isMaster){ console.log(“宿主启动…”); for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on(‘listening’,function(worker,address){ console.log(‘核心’+i+’ pid:’+ worker.process.pid); }); cluster.on(‘exit’, function(worker, code, signal) { console.log(‘核心’+i+’ pid:’+ worker.process.pid+’ 重启’) setTimeout(function() {cluster.fork();},2000); }); }else{ app.set(‘port’,5173); app.listen(app.get(‘port’)); }

单线程中断自动延时重启。7*24小时。就算你程序全是错,线程也挂不掉哦。

在Node里,异步回调函数内抛出的异常无法捕获,会产生uncaughtException事件,导致整个进程挂掉 目前主要有两种处理方式:自行在回调函数内try/catch,然后返回error对象,或者使用domain

我是直接在app.js最开始写

process.on('uncaughtException', function (err) {
    console.log('Caught exception: ', err);
});
回到顶部