'use strict'; const _ = require('lodash'); module.exports = options => { return async function errorEmail(ctx, next) { console.log('line 5 in function:'); try { await next(); } catch (e) { let errcode = -1, errmsg = '服务发生错误', details; const emailData = {}; if (_.isNumber(e.errcode)) { errcode = _.get(e, 'errcode'); errmsg = _.get(e, 'errmsg'); details = _.get(e, 'details'); emailData.errmsg = errmsg; emailData.details = details; } else { emailData.errmsg = e.stack; } emailData.errcode = errcode; ctx.service.util.email.errorEmail(emailData); ctx.fail(errcode, errmsg, details); } }; };