nodejs express異常捕獲

參考連接: http://blog.coinidea.com/web%E5%BC%80%E5%8F%91/nodejs-1131.htmljavascript

因爲nodejs是非阻塞單進程單線程的,一旦nodejs拋出異常,整個服務就會停掉。服務將會很是不穩定。 解決方法:html

  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%E5%BC%80%E5%8F%91/nodejs-1131.htmljava

相關文章
相關標籤/搜索