'use strict'; const routerMethod = require('../../config/routerMethod'); const routerMondel = require('../../config/routerMondel'); module.exports = () => { return async function errorHandler(ctx, next) { let jsons = { }; const { url, method, body } = ctx.request; if (method !== 'GET') { const str = url.split('/'); let mondel; let method; for (let i = 0; i < str.length; i++) { const e = str[i]; if (e !== '' && e !== 'api') { if (e === 'create' || e === 'update' || e === 'delete') { method = routerMethod[e]; if (e === 'delete') { break; } } else { mondel = routerMondel[e]; } } } jsons = { mondel, method, data: body }; } try { await next(); if (method !== 'GET') { jsons.result = '成功'; await ctx.service.log.create(jsons); } } catch (err) { if (method !== 'GET') { jsons.result = '失败'; await ctx.service.log.create(jsons); } const { message } = err; let json = { errcode: -1001, errmsg: message, }; if (err.code !== 'ERR_ASSERTION') { json = JSON.parse(message); } ctx.body = json; ctx.status = 400; } }; };