>  기사  >  웹 프론트엔드  >  Raygun을 사용하여 Node.js에서 오류를 처리하는 방법

Raygun을 사용하여 Node.js에서 오류를 처리하는 방법

WBOY
WBOY원래의
2016-05-16 15:53:321209검색

raygun4node 패키지는 Node.js 오류를 Raygun으로 보내는 편리한 방법을 제공합니다. npm을 사용하여 쉽게 설치할 수 있습니다.

npm install raygun

API 키를 구성하고 오류 메시지를 수동으로 보내는 데 사용할 수 있는 raygun 클라이언트를 제공합니다. 그러나 나중에 "모든 오류를 수동으로 보내고 싶지 않습니다. 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);
});
 

이 작업을 시작하려면 이것이 무엇을 의미하는지 이해해야 합니다. 하지만 타임 버블이 이벤트 루프로 완전히 돌아가면 이 이벤트에 대한 리스너를 추가하면 이 이벤트가 발생합니다. 그러면 기본 작업은 더 이상 발생하지 않습니다. 기본 작업은 호출 스택 정보를 인쇄하고 프로세스를 종료하는 것입니다. 이를 트리거한 후 계속하면 노드 프로세스가 정의되지 않은 상태가 됩니다. 문서에는 구체적으로 다음과 같이 나와 있습니다. 이를 사용하면 안 되며 나중에 제거될 수도 있습니다. 제안된 대안은 도메인을 사용하는 것입니다. 아래에 작고 간단한 예가 나와 있으며 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으로 문의하세요.