问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何提高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);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 敬礼警察叔叔作文380个字 古人想喝奶怎么办? 牛奶方糕300牛奶放多少淀粉? 牛奶方糕怎么做好吃 红枣枸杞鲢鱼头汤作用 国宴用酒都有什么酒 债权人申请破产的后果 2011年海航控股发行的122071海航02债破产重整,现在还没有兑付债券本息怎么办? kono洗发水怎么打开按泵- 问一问 阿黛尔洗发露开盖方法 51公积金管家里面的金美贷借了一万分12期还款。还一期能借出来吗? 邮件通知一般用什么字体 邮件字体一般多大字号 员工入职不满一个月被辞退 入职半年被辞退有赔偿金吗 入职5个半月,公司将我辞退。我该如何申请补偿 呼和浩特28号天气怎么样 请问淘宝卖家包邮我要退货邮费谁承担 头上前额两边的头发掉了有什么办法还可以长出来 就最近几年,掉头发,原来头发特多,现在头痒,洗头就掉很多感觉,头两边越来越没有头发了~谢谢医生帮助 在古代有牛奶吗 。。。坐看评论 手机神庙逃亡2下载成功,安装未完成怎么办 Android智能手机支持office办公软件吗(Word、Excel、PowerPoint)? 手机有cmcc免费上网的软件,能上cmcc网,如果能上肯定手机已经有了一个cmcc的账号密码,那有 荣耀手机3至尊版照相发热是不是质量问题手机只要是照相就发烫? 华为nov9pro5G网手机刚买回来还没上卡,照一下相手机就发热烫是... iphone13pro相机开了1小时,手机发烫。请问这样对手机本身和电池有影响吗?_百度问一问 缅甸翡翠价格怎么样?大家介绍介绍吧 老一辈留下的,有人看过说是缅甸翡翠,这个值钱吗? 6s手机相机部分总是发热怎么回事 缅甸翡翠看看怎么样!价值多少! 翡翠和玉是一样的性质吗?缅甸玉价值高还是翡翠的价值高?缅甸玉又有什么特征?急需 缅甸翡翠a货价格都很贵是吗?为什么这么贵啊? 请问缅甸翡翠当中什么样的玉手镯才算高档的呢? 缅甸翡翠玉石行情怎么样啊?我想知道我手里的翡翠值不值钱? 消防四会指的是什么 消防安全中的四会指的是什么 岗位消防安全四会是指会报警会使用什么会扑救初期火灾会逃生 怎么做网页游戏?