如何提高NodeJS程序的运行的稳定性
发布网友
发布时间:2022-04-22 15:05
我来回答
共2个回答
热心网友
时间:2022-04-22 16:34
我觉得主要可以从以下方面提高nodejs 稳定性:
1)保持良好的代码结构:
我们知道node是单线程,非阻塞io,默认就是异步,通过回调的方式处理后面的流程,如果嵌套的层次太多了,势必会引起代码逻辑结构的混乱,也不利于维护和升级,可以采用async这个异步流程控制模块,来理清我们的代码逻辑。
2)使用 process.on('uncaughtException', function(err){...}); 来处理未被捕捉的错误。
3)使用try~catch 来捕获异常:
这个只能解决一部分问题,不是万能的,在上面说到因为node是单线程,非阻塞io,默认就是异步,通过回调的方式处理后面的流程,try~catch 是不能捕获的callback 里面的error的错误的,怎么捕获到callback里面的错误呢 ? 可以采用domain模块
4)使用domain模块来处理程序的异常
先看看对domain的解释:domain是 EventEmitter类的一个子类。监听它的error事件来处理它捕捉到的错误。 它提供了一种方式,即以一个单一的组的形式来处理多个不同的IO操作。如果任何一个注册到domain的事件触发器或回调触发了一个‘error’事件,或者抛出一个错误,那么domain对象将会被通知到。而不是直接让这个错误的上下文从`process.on('uncaughtException')'处理程序中丢失掉,也不会致使程序因为这个错误伴随着错误码立即退出。
望采纳
热心网友
时间:2022-04-22 17:52
当我们写了个NodeJS程序的时候,一般用node
yourjsfile.js命令启动该程序。但是如果程序中有东西出错,这个进程就会退出。我们写程序不可能保证万无一失,肯定有些没有处理的错误,这就
让很多人觉得NodeJS不稳定,容易产生很多故障。 下面我就讲讲几种方法增加你的NodeJS程序的稳定性。
1.使用 try{} catch(error){} 来执行容易出错的代码段。比如解析一个外来的json字符串等。
2.使用 process.on(‘uncaughtException’, function(err){}); 来处理未被捕捉的错误。
3.试用奶妈进程来启动你的程序,检测子进程的退出,然后自动重启该进程。比如 mother.js :start();functionstart(){console.log('Mother process is running.');
varls=require('child_process').spawn('node',['yourjsfile.js']);
ls.stdout.on('data',function(data){console.log(data.toString());});ls.stderr.on('data',function(data){console.log(data.toString());});ls.on('exit',function(code){console.log('child process exited with code '+code);
delete(ls);