85 lines
2.1 KiB
JavaScript
85 lines
2.1 KiB
JavaScript
/**
|
||
* 响应工具类
|
||
* 提供统一的响应格式
|
||
*/
|
||
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; |