使用Raygun对Node.js应用进行错误处理的方法
作者:bea
用我们的 raygun4node 包,能提供一种把您的Node.js错误发送给Raygun的便利办法. 它可以很容仪的使用 npm 安装: npm install raygun 其能给您提供一个raygun客户端,您可以用它来配置您的API key,并且可以用来手动发送错误消息. 但稍后你可能会说, “我不想手动地把所有的错误都发给Raygun,那样听起来像是有大量的工作要做!” 如果你正用着 express.js ,那么用express的处理器就可以很容易解决这份
用我们的 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中的错误处理.
持续清理错误!
有用 | 无用
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 bootstrap实现生日日期联动选择
- 原生js制作日历控件实例分享
- 基于HTML模板和JSON数据的JavaScript交互(移动端)
- JavaScript中实现无缝滚动、分享到侧边栏实例代码
- jQuery实现内容定时切换效果完整实例
- jQuery隐藏和显示效果实现
- JS动态改变浏览器标题的方法
- jQuery ajax提交Form表单实例(附demo源码)
- JS密码生成与强度检测完整实例(附demo源码下载)
- JS控制伪元素的方法汇总
- JS实现把鼠标放到链接上出现滚动文字的方法
- IE8 内存泄露(内存一直增长 )的原因及解决办法
- jQuery实现HTML表格单元格的合并功能
- JS中JSON对象和String之间的互转及处理技巧
- js老生常谈之this,constructor ,prototype全面解析
- 实例详解ECMAScript5中新增的Array方法
- Windows系统下Node.js的简单入门教程
- jQuery实现判断滚动条到底部
- jQuery实现新消息在网页标题闪烁提示