首页 > 编程 > JavaScript > 正文

使用Raygun对Node.js应用进行错误处理的方法

2019-11-20 12:11:39
字体:
来源:转载
供稿:网友

用我们的 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中的错误处理.

持续清理错误!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表