使用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 相关文章推荐
List all the Databases on a SQL Server
Jun 21 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
Nov 18 Javascript
js修改table中Td的值(定义td的单击事件)
Jan 10 Javascript
jQuery点击tr实现checkbox选中的方法
Mar 19 Javascript
使用js实现的简单拖拽效果
Mar 18 Javascript
详解AngularJS过滤器的使用
Mar 11 Javascript
瀑布流的实现方式(原生js+jquery+css3)
Jun 28 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
Jan 15 Javascript
Angular 项目实现国际化的方法
Jan 08 Javascript
在HTML文档中嵌入JavaScript的四种方法
May 07 Javascript
使用Angular 6创建各种动画效果的方法
Oct 10 Javascript
javascript跳转与返回和刷新页面的实例代码
Nov 20 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
Apache中php.ini的设置方法
2013/02/28 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
2019/03/18 PHP
mongodb和php的用法详解
2019/03/25 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
jQuery实现的导航下拉菜单效果
2016/07/04 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
面试常见的js算法题
2017/03/23 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
Python 3.x 新特性及10大变化
2015/06/12 Python
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
Python实现最常见加密方式详解
2019/07/13 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
Python实现发票自动校核微信机器人的方法
2020/05/22 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
美国室内和室外装饰花盆购物网站:ePlanters
2019/03/22 全球购物
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
大学生自我鉴定范文模板
2014/01/21 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
村委会贫困证明范文
2014/09/21 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
openstack中的rpc远程调用的方法
2021/07/09 Python