dazjsx
Version:
参考nestjs,基于KOA2的一款轻量级的后端开发框架
47 lines (46 loc) • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResponseMiddleware = void 0;
const __1 = require("..");
const getCode = (status) => {
let code = __1.CustomCode.SUCCESS_CODE;
let st = status;
switch (status) {
case 401:
code = __1.CustomCode.NO_AUTH;
st = 200;
break;
case 404:
code = __1.CustomCode.NOT_FOUND_CODE;
st = 200;
break;
case 500:
code = __1.CustomCode.ERROR_CODE;
st = 200;
break;
}
return { code, st };
};
const getMessage = (status, err) => {
let message = 'ok';
switch (status) {
case 404:
message = '该接口不存在或已禁止使用,请确认后重试';
break;
default:
message = status !== 200 ? err || '未知异常,请联系管理员' : message;
}
return message;
};
const ResponseMiddleware = async (ctx, next) => {
const status = ctx.status;
const message = getMessage(status, ctx.errorMessage);
const { code, st } = getCode(status);
ctx.status = st;
ctx.body = {
code,
data: status === 200 ? ctx.proBody || null : undefined,
message,
};
};
exports.ResponseMiddleware = ResponseMiddleware;