如何提高NodeJS程序的稳定性
2011-05-16

   当我们写了个NodeJS程序的时候,一般用node yourjsfile.js命令启动该程序。但是如果程序中有东西出错,这个进程就会退出。我们写程序不可能保证万无一失,肯定有些没有处理的错误,这就让很多人觉得NodeJS不稳定,容易产生很多故障。 下面我就讲讲几种方法增加你的NodeJS程序的稳定性。

   1.使用 try{...} catch(error){...} 来执行容易出错的代码段。比如解析一个外来的json字符串等。
   2.使用 process.on('uncaughtException', function(err){...}); 来处理未被捕捉的错误。
   3.试用奶妈进程来启动你的程序,检测子进程的退出,然后自动重启该进程。比如 mother.js :


start();
function start()
{
    console.log('Mother process is running.');
    var ls = 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);
        setTimeout(start,5000);
    });
}

    4.使用 nohup 让nodejs进程在后台运行。 比如运行"nohup node yourjsfile.js > /dev/null &"

阅读:16819   评论: 16 💬
#1
挪墨 2011年05月17号 09:46 回复
很有价值的解决方案,特别是mother.js的思路
关于第四点,如果js程序出现异常,会有一个什么反馈给程序员?
#2
longbill 2011年05月17号 09:48 回复
@挪墨 什么都没有。………也可以有。把/dev/null 换成文件名,输出就会被保存到那个文件。
#3
王道中强流 2011年05月17号 10:44 回复
强大
#4
网站建设 2011年06月02号 15:56 回复
虎王和狮王在酒吧喝酒,喝到后来,竟抱头痛哭起来。这时狐狸侍者走过来问道:“两位大哥为何如此伤心?” 
狮王拍拍狐狸,指着虎王说:“他家有个母老虎,俺家有个河东狮。兄弟,这日子怎么过呀?” 
听到这儿,狐狸立刻饱含眼泪,委屈地说:“两位大哥,俺家那个狐狸精也不省心呀!”
#5
phper 2011年06月17号 10:55 回复
请教博主大陆上推特、facebook的方法.
#6
宁波藏獒园 2011年06月21号 11:12 回复
博主你的博文不错啊,我会继续支持你的
#7
我的久优 2011年06月24号 17:59 回复
你以前的域名怎么不用了,longbill的这个,觉得换成com的比较好吧,CN的我自己都觉得无力了
#8
怎样利用网络赚钱 2011年06月25号 11:37 回复
CN域名确实不太好呀
#9
高清电视 2011年07月10号 10:18 回复
这段代码不错,学习了
#10
Longbill 2011年08月06号 00:55 回复
@phper 用的我自己写的NodeJS翻墙软件。
#11
美国十次啦 2011年08月06号 23:22 回复
写的不错嘛
#12
四房播播 2011年08月06号 23:22 回复
学习了应该用有
#13
电视棒 2011年10月04号 00:38 回复
这段代码写得非常好,学习了
#14
内蒙古人事考试 2011年11月03号 17:36 回复
代码我头晕
#15
yoom 2011年12月01号 13:50 回复
非常感谢您的文章!!
#16
水饺 2012年01月11号 17:10 回复
nohup启动,该死的还是会死,还没提示...
添加新的评论
Copyright © Longbill 2008-2026