nodejs express异常捕获

参考链接:
http://blog.coinidea.com/web开发/nodejs-1131.html

由于nodejs是非阻塞单进程单线程的,一旦nodejs抛出异常,整个服务就会停掉。服务将会非常不稳定。
解决方法:

  1. 使程序鲁棒,在有可能出现异常的地方,全部使用try { } catch(){ }进行嵌套。
  2. express作为nodejs比较常用的框架,其实nodejs自己也有一定的异常错误捕获机制
// Express' errorHandler
function errorHandler(err, req, res, next) {
console.error(err.stack);
}
app.use(errorHandler);
  1. 使用domain模块,先下载domain, “npm install domain”
//Domain捕获异常
app.use(function(req, res, next) {
var domain = createDomain();
domain.on('error', function(err) {
// alternative: next(err)
console.log(err.stack);
res.statusCode = 500;
res.end(err.message + '\n');
domain.dispose();
});
domain.enter();
next();
});
  1. 使用forever启动app.js,forever可以看做是一个nodejs的守护进程,能够启动,停止,重启我们的app应用。
forever start app.js

参考链接:
http://blog.coinidea.com/web开发/nodejs-1131.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值