env-manage-plugin
Version:
A dev env plugin that integrates an Express server with request proxying capabilities.
53 lines (52 loc) • 1.83 kB
JavaScript
/**
* 响应增强中间件
*
* 为 Express 的 Response 对象添加统一格式的 success 和 error 响应方法,
* 确保 API 返回数据结构一致,包含状态码、消息、数据和时间戳。
*
* @param {Request} req - Express 请求对象
* @param {Response} res - Express 响应对象
* @param {NextFunction} next - Express 下一步中间件函数
* @returns {void}
*/
export const responseEnhancer = (req, res, next) => {
/**
* 发送成功响应
*
* @template T - 响应数据的类型
* @param {T} [data] - 成功响应的数据 payload,可为任意类型
* @param {string} [message="操作成功"] - 成功提示消息
* @param {number} [code=200] - HTTP 状态码,默认 200
* @returns {Response} Express 响应对象,支持链式调用
* @example
* res.success({ id: 1, name: '示例' }, '获取成功', 200);
*/
res.success = function (data, message = "操作成功", code = 200) {
return res.status(code).json({
code,
message,
data,
timestamp: Date.now(),
});
};
/**
* 发送错误响应
*
* @template T - 错误附加数据的类型
* @param {string} [message="操作失败"] - 错误提示消息
* @param {number} [code=500] - HTTP 状态码,默认 500
* @param {T} [data] - 错误相关的附加数据,可为任意类型
* @returns {Response} Express 响应对象,支持链式调用
* @example
* res.error('参数错误', 400, { invalidFields: ['name'] });
*/
res.error = function (message = "操作失败", code = 500, data) {
return res.status(code).json({
code,
message,
data,
timestamp: Date.now(),
});
};
next();
};