首頁  >  文章  >  web前端  >  使用Raygun對Node.js應用進行錯誤處理的方法_node.js

使用Raygun對Node.js應用進行錯誤處理的方法_node.js

WBOY
WBOY原創
2016-05-16 15:53:321229瀏覽

用我們的 raygun4node 包,能提供一種把您的Node.js錯誤發送給Raygun的便利辦法. 它可以很容儀的使用 npm 安裝:
 

npm install raygun

其能為您提供一個raygun客戶端,您可以用它來配置您的API key,並且可以用來手動發送錯誤訊息. 但稍後你可能會說, “我不想手動地把所有的錯誤都發給Raygun,那樣聽起來像是有大量的工作要做!” 如果你正用著express.js ,那麼用express的處理器就可以很容易解決這份擔憂了.
 

var raygun = require('raygun');
var raygunClient = new raygun.Client().init({ apiKey: 'your API key' });
app.use(raygunClient.expressHandler);

在其它情況下你可能只是想用這種方式偵聽沒有被捕獲的異常uncaughtException並發送錯誤訊息.
 

var raygun = require('raygun');
var raygunClient = new raygun.Client().init({ apiKey: 'your API key' });
process.on('uncaughtException', function(err) {
 raygunClient.send(err);
});
 

如果你打算開始這樣做了,那你就必須理解其含義. 但一個時間氣泡一直回到事件循環的時候,這個事件將會被發出. 如果你為這個事件添加了偵聽器,那麼預設的動作就不會再發生了. 預設的動作時列印出調用棧訊息並退出進程.觸發這個之後如果繼續的話,那麼你的node進程將會處在一個沒有被定義的狀態. node.js文件特別提到說你不應該使用這個東西,而它未來可能會被移除掉. 建議的替代方案是使用域domains. 下面所展示的就是一個小而簡單的例子,你可以看到raygun客戶端是怎樣適配你對域的使用的.

 

var domain = require('domain');
var raygun = require('raygun');
var raygunClient = new raygun.Client().init({ apiKey: 'your API key' });
var server = require('http').createServer(function (req, res) {
 var d = domain.create();
 d.on('error', function (err) {
  raygunClient.send(err);
  // clean up and end
 });
 d.add(req);
 d.add(res);
 d.run(function () {
  // handle the req, res
 });
});
server.listen(3000);

希望這會你更好的理解使用Raygun的Node.js中的錯誤處理.

持續清理錯誤!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn