使用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 相关文章推荐
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
Jan 29 Javascript
使用PHP+JQuery+Ajax分页的实现
Apr 23 Javascript
js实现的map方法示例代码
Jan 13 Javascript
jQuery/CSS3图片特效插件整理推荐
Dec 07 Javascript
jQuery+jRange实现滑动选取数值范围特效
Mar 14 Javascript
jQuery Validate表单验证深入学习
Dec 18 Javascript
JQuery Mobile实现导航栏和页脚
Mar 09 Javascript
js输出数据精确到小数点后n位代码
Jul 02 Javascript
基于JavaScript实现购物网站商品放大镜效果
Sep 06 Javascript
一个有意思的鼠标点击文字特效jquery代码
Sep 23 jQuery
小程序转发探索示例
Feb 19 Javascript
详解vue中移动端自适应方案
May 05 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
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
JavaScript中的object转换成number或string规则介绍
2014/12/31 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
python实现给字典添加条目的方法
2014/09/25 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
英国家用电器购物网站:Hughes
2018/02/23 全球购物
CheapTickets香港机票预订网站:CheapTickets.hk
2019/06/26 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
地质灾害防治方案
2014/05/14 职场文书
村主任“四风”问题个人整改措施
2014/10/04 职场文书
离婚协议书范本
2015/01/26 职场文书
英语邀请函范文
2015/02/02 职场文书
护士求职自荐信范文
2015/03/04 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android
Java 超详细讲解hashCode方法
2022/04/07 Java/Android