/** * 响应工具类 * 提供统一的响应格式 */ class ResponseUtil { /** * 成功响应 * @param {Object} ctx - Koa上下文对象 * @param {Object} data - 响应数据 * @param {string} message - 响应消息 */ static success(ctx, data, message = '操作成功') { ctx.status = 200; ctx.body = { code: 0, msg: message, data, ts: Date.now() }; } /** * 错误响应 * @param {Object} ctx - Koa上下文对象 * @param {string} message - 错误消息 * @param {number} errorCode - 应用错误码 */ static error(ctx, message, data = null, errorCode = 500) { // 根据规则,只要进入controller,http状态码都是200 ctx.status = 200; ctx.body = { code: errorCode, msg: message, data, ts: Date.now() }; } /** * 请求参数错误响应 * @param {Object} ctx - Koa上下文对象 * @param {string} message - 错误消息 */ static badRequest(ctx, message = '请求参数错误', data = null) { return ResponseUtil.error(ctx, message, data, 400); } /** * 未授权响应 * @param {Object} ctx - Koa上下文对象 * @param {string} message - 错误消息 */ static unauthorized(ctx, message = '未授权', data = null) { return ResponseUtil.error(ctx, message, data, 401); } /** * 禁止访问响应 * @param {Object} ctx - Koa上下文对象 * @param {string} message - 错误消息 */ static forbidden(ctx, message = '禁止访问', data = null) { return ResponseUtil.error(ctx, message, data, 403); } /** * 资源不存在响应 * @param {Object} ctx - Koa上下文对象 * @param {string} message - 错误消息 */ static notFound(ctx, message = '资源不存在', data = null) { return ResponseUtil.error(ctx, message, data, 404); } /** * 服务器内部错误响应 * @param {Object} ctx - Koa上下文对象 * @param {string} message - 错误消息 */ static internalError(ctx, message = '服务器内部错误', data = null) { return ResponseUtil.error(ctx, message, data, 500); } } export default ResponseUtil;