使用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 相关文章推荐
JQUERY设置IFRAME的SRC值的代码
Nov 30 Javascript
javascript针对DOM的应用实例(一)
Apr 15 Javascript
简单js代码实现selece二级联动(推荐)
Feb 18 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
Feb 19 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
Mar 05 Javascript
jQuery添加options点击事件并传值实例代码
May 18 Javascript
完美实现八种js焦点轮播图(上篇)
Jul 18 Javascript
vue指令以及dom操作详解
Mar 04 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
May 20 jQuery
vue.js评论发布信息可插入QQ表情功能
Aug 08 Javascript
Koa项目搭建过程详细记录
Apr 12 Javascript
JavaScript中构造函数与原型链之间的关系详解
Feb 25 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
php中$this->含义分析
2009/11/29 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
js substr、substring和slice使用说明小记
2011/09/15 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
jQuery中将json数据显示到页面表格的方法
2018/05/27 jQuery
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
JS实现使用POST方式发送请求
2019/08/30 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
Python处理中文标点符号大集合
2018/05/14 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
Django forms表单 select下拉框的传值实例
2019/07/19 Python
python pyecharts 实现一个文件绘制多张图
2020/05/13 Python
python 录制系统声音的示例
2020/12/21 Python
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
服装厂厂长岗位职责
2013/12/27 职场文书
自主实习接收函
2014/01/13 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js