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


Posted in Javascript onJune 23, 2015

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

持续清理错误!

Javascript 相关文章推荐
Flash+XML滚动新闻代码 无图片 附源码下载
Nov 22 Javascript
jquery 表单下所有元素的隐藏
Jul 25 Javascript
侧栏跟随滚动的简单实现代码
Mar 18 Javascript
JavaScript ParseFloat()方法
Dec 18 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
Oct 13 Javascript
Angular4实现动态添加删除表单输入框功能
Aug 11 Javascript
JavaScript 日期时间选择器一些小结
Apr 02 Javascript
JavaScript获取用户所在城市及地理位置
Apr 21 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
Sep 13 Javascript
详解微信小程序之scroll-view的flex布局问题
Jan 16 Javascript
vue 设置 input 为不可以编辑的实现方法
Sep 19 Javascript
小程序接口的promise化的实现方法
Dec 11 Javascript
javascript创建函数的20种方式汇总
Jun 23 #Javascript
使用Node.js实现HTTP 206内容分片的教程
Jun 23 #Javascript
jquery.gridrotator实现响应式图片展示画廊效果
Jun 23 #Javascript
使用JavaScript实现旋转的彩圈特效
Jun 23 #Javascript
在Node.js中使用HTTP上传文件的方法
Jun 23 #Javascript
Js+php实现异步拖拽上传文件
Jun 23 #Javascript
javascript框架设计之类工厂
Jun 23 #Javascript
You might like
第一节--面向对象编程
2006/11/16 PHP
ie6 动态缩略图不显示的原因
2009/06/21 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
2011/07/18 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
浅析is_writable的php实现
2013/06/18 PHP
跟我学Laravel之路由
2014/10/15 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
2017/08/16 Javascript
详解javascript中的Error对象
2019/04/25 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
Python 实现一行输入多个值的方法
2018/04/21 Python
tensorflow更改变量的值实例
2018/07/30 Python
python中if及if-else如何使用
2020/06/02 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
商场促销活动方案
2014/02/08 职场文书
医学生毕业自我鉴定
2014/03/26 职场文书
幼儿园教师演讲稿
2014/05/06 职场文书
旅游专业毕业生自荐书
2014/06/30 职场文书
商超业务员岗位职责
2015/02/13 职场文书
奠基仪式致辞
2015/07/30 职场文书
争做文明公民倡议书
2019/06/24 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
详解PyTorch模型保存与加载
2022/04/28 Python