使用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 相关文章推荐
extjs中grid中嵌入动态combobox的应用
Jan 01 Javascript
关于URL中的特殊符号使用介绍
Nov 03 Javascript
如何使用jquery动态加载js,css文件实现代码
Apr 03 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
May 13 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
Feb 08 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
Jul 22 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
Jan 19 Javascript
Bootstrap入门教程一Hello Bootstrap初识
Mar 02 Javascript
jQuery层级选择器_动力节点节点Java学院整理
Jul 04 jQuery
Node.js 使用jade模板引擎的示例
May 11 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
Sep 19 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
Jan 16 jQuery
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模拟js函数unescape的函数代码
2012/10/20 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
jQuery Ajax全解析
2017/02/13 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
python装饰器使用方法实例
2013/11/21 Python
wxPython学习之主框架实例
2014/09/28 Python
Python中查看文件名和文件路径
2017/03/31 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
Python编程scoketServer实现多线程同步实例代码
2018/01/29 Python
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
Python的垃圾回收机制详解
2019/08/28 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
通俗讲解python 装饰器
2020/09/07 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
Python 中Operator模块的使用
2021/01/30 Python
python网络爬虫实现发送短信验证码的方法
2021/02/25 Python
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
大学生创业计划书的范文
2014/01/07 职场文书
11月升旗仪式讲话稿
2014/02/15 职场文书
父母寄语大全
2014/04/12 职场文书
个人政治思想总结
2015/03/05 职场文书
道歉的话语大全
2015/05/12 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers