快捷搜索: 王者荣耀 脱发

体检在线Bug/Exception系统

看了这篇文章的介绍:。我尝试了一下这个bugsnag。他有2个服务,免费的和付费的。免费的只能支持单用户(也就是把错误报告发送到单个用户),每个月只能有2000个exception、exception只能保存1个月。对我来说,也够用了。

官方提供了,集成到nodejs很简单,而且他还提供了expressJs的中间件。写了点代码试了一下。首先要把你的API Key注册(在project settings页面可以看到),其次加入2个中间件,requestHandler和errorHandler,requestHandler好像是针对异步方法的,加了这2个中间件之后,你页面处理函数中的异常(如下面代码中的/nie)就会被捕获,发送到云端,同时你也可以显示发送异常((如下面代码中的/me):

var express = require(express);
var routes = require(./routes);
var user = require(./routes/user);
var http = require(http);
var path = require(path);

var bugsnag = require("bugsnag");
bugsnag.register(XXXXXXXXXXXXXXXXXXXXXX);

var app = express();

// all environments
app.set(port, process.env.PORT || 3000);
app.set(views, __dirname + /views);
app.set(view engine, ejs);
app.use(bugsnag.requestHandler);
app.use(express.favicon());
app.use(express.logger(dev));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, public)));
app.use(bugsnag.errorHandler);

// development only
if (development == app.get(env)) {
  app.use(express.errorHandler());
}

app.get(/, function (req, res) {
    res.render(index, { title: Express });
});
app.get(/nie, function handlerUsersReqeust (req, res) {
    throw "NotImplementedException";
});
app.get(/me, function handlerUsersReqeust(req, res) {
    bugsnag.notify(new Error("Custom Error", {
        auther: "puncha",
        path: /me,
        email: kk@kk.com
    }));
});


http.createServer(app).listen(app.get(port), function(){
  console.log(Express server listening on port  + app.get(port));
});
可以看到,异常已经被服务器端捕获,而且列了出来:

他的功能不限于此,不过,我也不准备做深入研究了。不过有一个想法,是不是把他的源代码里面的URL替换成我们自己的,然后自己实现一下他的Web Service是不是就能把他搬下来,作为一个私有云的Bug Report系统了?呵呵

经验分享 程序员 微信小程序 职场和发展