使用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 相关文章推荐
张孝祥JavaScript学习阶段性总结(2)--(X)HTML学习
Feb 03 Javascript
firefox中用javascript实现鼠标位置的定位
Jun 17 Javascript
javascript 当前日期加(天、周、月、年)
Aug 09 Javascript
javascript 设置文本框中焦点的位置
Nov 20 Javascript
juqery 学习之四 筛选查找
Nov 30 Javascript
js拦截alert对话框另类应用
Jan 16 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
Oct 01 Javascript
js创建一个input数组并绑定click事件的方法
Jun 12 Javascript
多种jQuery绑定事件的实现方式
Jun 13 Javascript
Bootstrap基本插件学习笔记之折叠(22)
Dec 08 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
Jan 21 Javascript
详解Vue 全局引入bass.scss 处理方案
Mar 26 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
php实现计数器方法小结
2015/01/05 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
js跳转页面方法总结
2014/01/29 Javascript
js二维数组定义和初始化的三种方法总结
2014/03/03 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
JS实现让网页背景图片斜向移动的方法
2015/02/25 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
使用Python的turtle模块画图的方法
2017/11/15 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
python向图片里添加文字
2019/11/26 Python
Django使用Profile扩展User模块方式
2020/05/14 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
财务方面个人工作的自我评价
2013/12/28 职场文书
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
幼儿园大班家长评语
2014/04/17 职场文书
艺术设计专业求职自荐信
2014/05/19 职场文书
学校校庆演讲稿
2014/05/22 职场文书
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技