前言
在我们实际的业务开发中,我们可以看到后端接口返回格式都有一定的要求,假如我们统一规定接口的统一返回格式为:
{
data: any; // 业务数据
code: number; // 状态码
msg: string; // 响应信息
timestamp: number; // 时间戳
}
那么在 Nest.js 中,我们应该如何处理呢?
定义响应状态码枚举和类型
- 在
src
目录中新建/enums/index.ts
文件:
/**
* @description: 响应码
*/
export enum RESPONSE_CODE {
NOSUCCESS = -1, // 表示请求成功,但操作未成功
SUCCESS = 200, // 请求成功
BAD_REQUEST = 400, // 请求错误
UNAUTHORIZED = 401, // 未授权
FORBIDDEN = 403, // 禁止访问
NOT_FOUND = 404, // 资源未找到
INTERNAL_SERVER_ERROR = 500, // 服务器错误
}
/**
* @description: 请求提示语
*/
export enum RESPONSE_MSG {
SUCCESS = '请求成功',
FAILURE = '请求失败',
}
- 在
src
目录中新建/typings/index.d.ts
文件:
declare namespace Api {
namespace Common {
/**
* @description: 全局响应体
*/
type Response<T = any> = {
code: number; // 状态码
data?: T; // 业务数据
msg: string; // 响应信息
timestamp: number; // 时间戳
};
/**
* @description: 分页数据
*/