使用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 相关文章推荐
在textarea中显示html页面的javascript代码
Apr 20 Javascript
说说JSON和JSONP 也许你会豁然开朗
Sep 02 Javascript
js中 javascript:void(0) 用法详解
Aug 11 Javascript
js实现的简洁网页滑动tab菜单效果代码
Aug 24 Javascript
浅谈String.valueOf()方法的使用
Jun 06 Javascript
Form表单按回车自动提交表单的实现方法
Nov 18 Javascript
微信小程序 用户数据解密详细介绍
Jan 09 Javascript
react-native 封装选择弹出框示例(试用ios&android)
Jul 11 Javascript
bootstrap是什么_动力节点Java学院整理
Jul 14 Javascript
js判断节假日实例代码
Dec 27 Javascript
深入了解javascript 数组的sort方法
Jun 01 Javascript
使用koa2创建web项目的方法步骤
Mar 12 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 simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
php根据日期显示所在星座的方法
2015/07/13 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
JavaScript的变量作用域深入理解
2009/10/25 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
javascript获取url上某个参数的方法
2013/11/08 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
IE10中flexigrid无法显示数据的解决方法
2015/07/26 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
详解在React-Native中持久化redux数据
2019/05/22 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
Python网络编程 Python套接字编程
2017/09/13 Python
Django ImageFiled上传照片并显示的方法
2019/07/28 Python
Python shelve模块实现解析
2019/08/28 Python
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
小学信息技术教学反思
2014/02/10 职场文书
给医院的感谢信
2015/01/21 职场文书
民事答辩状范本
2015/05/21 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
新年晚会主持词开场白
2015/05/28 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python
python面向对象版学生信息管理系统
2021/06/24 Python