1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- 'use strict';
- const routerMethod = require('../../config/routerMethod');
- const routerMondel = require('../../config/routerMondel');
- const moment = require('moment');
- module.exports = () => {
- return async function errorHandler(ctx, next) {
- let jsons = { };
- const { url, method, body } = ctx.request;
- let mondel = '';
- let methods = '';
- // token
- const str = ctx.request.header.authorization;
- const token = str.substring(7);
- const decode = ctx.app.jwt.verify(token, ctx.app.config.secret);
- const date = moment().format('YYYY-MM-DD HH:mm:ss');
- if (url.indexOf('power') === -1 && method !== 'GET') {
- const str = url.split('/');
- for (let i = 0; i < str.length; i++) {
- const e = str[i];
- if (e !== '' && e !== 'api') {
- if (e === 'create' || e === 'update' || e === 'delete' || e === 'upload') {
- methods = routerMethod[e];
- if (e === 'delete') {
- break;
- }
- } else {
- mondel = routerMondel[e];
- }
- }
- }
- jsons = { mondel, method: methods, data: body };
- }
- try {
- if (method !== 'GET' && url.indexOf('power') === -1) {
- jsons.result = '成功';
- jsons.userName = decode.userName;
- jsons.acct = decode.acct;
- jsons.date = date;
- await ctx.service.log.create(jsons);
- }
- await next();
- } catch (err) {
- if (method !== 'GET' && url.indexOf('power') === -1) {
- jsons.result = '失败';
- jsons.userName = decode.userName;
- jsons.acct = decode.acct;
- jsons.date = date;
- 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;
- }
- };
- };
|