Authored by htoooth

fix move error report to nodelib

... ... @@ -6,10 +6,7 @@ const headerModel = require('../models/header');
const logger = global.yoho.logger;
const cache = global.yoho.cache.master;
const helpers = global.yoho.helpers;
const sender = global.yoho.apmSender;
const config = global.yoho.config;
const hostname = require('os').hostname();
const routeEncode = require('./route-encode');
const pathWhiteList = require('./limiter/rules/path-white-list');
const ipWhiteList = require('./limiter/rules/ip-white-list');
const _ = require('lodash');
... ... @@ -62,45 +59,20 @@ exports.serverError = () => {
return async(err, req, res, next) => {
forceNoCache(res);
const uid = req.user ? req.user.uid : 0;
const udid = _.get(req, 'cookies.udid', 'yoho');
let errorCode = 500;
err = err || {
code: 500
};
req.err = err;
err.code = parseInt(err.code || err.statusCode, 10) || 500;
if (statusCodeList.indexOf(err.code) >= 0) {
errorCode = err.code;
}
if (req.isApmReport && !err.apiError) { // apierror在node lib中已经上报过了 不需要再次上报
// 上报服务端错误
sender.addMessage({
measurement: 'error-report',
tags: {
app: global.yoho.config.appName, // 应用名称
hostname,
type: 'server',
route: `[${req.method}]${req.route && req.route.path}`, // 请求路由
reqID: req.reqID,
uid,
udid,
code: err.code || 500,
path: `[${req.method}]${routeEncode.getRouter(req)}`,
url: encodeURIComponent(req.originalUrl),
ip: _.get(req, 'yoho.clientIp', '')
},
fields: {
message: err.message,
stack: err.stack,
useragent: req && req.get('user-agent')
}
});
}
logger.error(`error at path: ${req.url}`);
logger.error(err);
... ...