Notre package raygun4node fournit un moyen pratique d'envoyer vos erreurs Node.js à Raygun. Il peut être facilement installé à l'aide de npm :
.
npm install raygun
Il vous donne un client Raygun que vous pouvez utiliser pour configurer votre clé API et qui peut être utilisé pour envoyer des messages d'erreur manuellement. Mais plus tard, vous pourriez dire : « Je ne veux pas envoyer toutes les erreurs manuellement. Envoyez-les toutes. Raygun, cela ressemble à beaucoup de travail à faire !" Si vous utilisez express.js, alors l'utilisation du processeur d'express peut facilement résoudre ce souci.
var raygun = require('raygun'); var raygunClient = new raygun.Client().init({ apiKey: 'your API key' }); app.use(raygunClient.expressHandler);
Dans d'autres cas, vous souhaiterez peut-être simplement écouter uncaughtException et envoyer un message d'erreur de cette façon.
var raygun = require('raygun'); var raygunClient = new raygun.Client().init({ apiKey: 'your API key' }); process.on('uncaughtException', function(err) { raygunClient.send(err); });
Si vous voulez commencer à faire cela, vous devez comprendre ce que cela signifie. Mais lorsqu'une bulle temporelle retourne dans la boucle de l'événement, cet événement sera émis si vous ajoutez un auditeur pour cet événement, Ensuite, l'action par défaut ne se produira plus. L'action par défaut consiste à imprimer les informations de la pile d'appels et à quitter le processus. Si vous continuez après avoir déclenché cela, votre processus de nœud sera dans un état indéfini. node.js La documentation le dit spécifiquement. vous ne devriez pas l'utiliser et qu'il pourrait être supprimé à l'avenir. L'alternative suggérée est d'utiliser des domaines. Un petit exemple simple est présenté ci-dessous, et vous pouvez voir le client Raygun comment il s'adapte à votre utilisation du domaine.
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);
J'espère que cela vous donnera une meilleure compréhension de la gestion des erreurs dans Node.js à l'aide de Raygun.
Nettoyez continuellement les erreurs !