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의 오류 처리를 더 잘 이해할 수 있기를 바랍니다.
지속적으로 오류를 정리하세요!