使用Raygun对Node.js应用进行错误处理的方法

 更新时间:2015年06月23日 11:24:43   投稿:goldensun  
这篇文章主要介绍了使用Raygun对Node.js应用进行错误处理的方法,Node.js是一款用于服务器端的JavaScript框架,需要的朋友可以参考下

用我们的 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中的错误处理.

持续清理错误!

相关文章

  • 基于Koa2写个脚手架模拟接口服务的方法

    基于Koa2写个脚手架模拟接口服务的方法

    这篇文章主要介绍了基于Koa2写个脚手架模拟接口服务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • 浅谈Node 异步IO和事件循环

    浅谈Node 异步IO和事件循环

    这篇文章主要介绍了浅谈Node 异步IO和事件循环,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • 详解NodeJs开发微信公众号

    详解NodeJs开发微信公众号

    本篇文章给大家分享了NodeJs开发微信公众号的相关技术内容,对此有需要的朋友们可以跟着学习参考下。
    2018-05-05
  • Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)

    Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)

    这篇文章主要介绍了Node.js中使用Log.io在浏览器中实时监控日志,Log.io等同于tail -f命令,但更强大,需要的朋友可以参考下
    2014-09-09
  • Node.js使用SQLite数据库方法大全

    Node.js使用SQLite数据库方法大全

    Node.js是一种流行的JavaScript运行时,提供了许多有用的模块和库来构建Web应用程序,而SQLite是一种嵌入式关系型数据库,它可以运行在各种操作系统上,包括Windows、Linux和Mac OS X等,在Node.js中,可以通过安装sqlite3模块来访问SQLite数据库
    2023-10-10
  • 使用node操作SQLite的方法

    使用node操作SQLite的方法

    SQLite是一种轻量级的嵌入式关系型数据库管理系统,它以库的形式存在,可以嵌入到应用程序中,使用Node.js操作SQLite数据库有多种方式,其中常用的方式包括使用sqlite3模块、sequelize模块和knex模块,本文将详细的给大家介绍这几种方式,需要的朋友可以参考下
    2023-10-10
  • Node中的streams流的具体使用

    Node中的streams流的具体使用

    本文主要介绍了Node中的streams流的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • nodejs和C语言插入mysql数据库乱码问题的解决方法

    nodejs和C语言插入mysql数据库乱码问题的解决方法

    这篇文章主要介绍了nodejs和C语言插入mysql数据库乱码问题,需要的朋友可以参考下
    2017-04-04
  • nodejs项目windows下开机自启动的方法

    nodejs项目windows下开机自启动的方法

    今天小编就为大家分享一篇nodejs项目windows下开机自启动的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例

    node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例

    这篇文章主要介绍了node.js 使用 net 模块模拟 websocket 握手进行数据传递操作,结合实例形式分析了node.js基于net模块模拟 websocket握手相关原理及进行数据传递具体操作技巧,需要的朋友可以参考下
    2020-02-02

最新评论