From 76403a4ad173f0afa09db08d5a2b386d9fabe45f Mon Sep 17 00:00:00 2001 From: Peanut Date: Wed, 18 Mar 2026 22:57:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(mini-program):=20=E6=B7=BB=E5=8A=A0=20requ?= =?UTF-8?q?est.js=20API=20=E8=AF=B7=E6=B1=82=E8=AF=8A=E6=96=AD=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 request() 函数中添加请求/响应/错误日志 - 输出完整 URL、状态码、错误信息 - 仅在 DEBUG=true 时打印 --- mini-program/src/services/request.js | 57 +++++++++++++++++++++------- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/mini-program/src/services/request.js b/mini-program/src/services/request.js index 8d695d2..73c77d5 100644 --- a/mini-program/src/services/request.js +++ b/mini-program/src/services/request.js @@ -4,7 +4,7 @@ const API_BASE_URL = getEnvValue('API_BASE_URL') /** * 请求拦截处理 - * 自动添加token到请求头 + * 自动添加 token 到请求头 */ const getHeaders = () => { const token = uni.getStorageSync('access_token') @@ -20,20 +20,43 @@ const getHeaders = () => { /** * 统一请求方法 * @param {Object} options - 请求配置 - * @returns {Promise} 请求Promise + * @returns {Promise} 请求 Promise */ const request = (options) => { + const debug = getEnvValue('DEBUG') + const fullUrl = `${API_BASE_URL}${options.url}` + + // 请求日志 + if (debug) { + console.log('[API Request]', { + method: options.method || 'GET', + url: fullUrl, + path: options.url, + env: import.meta.env.VITE_APP_ENV + }) + } + return new Promise((resolve, reject) => { uni.request({ - url: `${API_BASE_URL}${options.url}`, + url: fullUrl, method: options.method || 'GET', data: options.data, header: getHeaders(), timeout: 30000, success: (res) => { const { data, statusCode } = res - - // 处理401未授权 + + // 响应日志 + if (debug) { + console.log('[API Response]', { + path: options.url, + status: statusCode, + code: data?.code, + success: data?.code === 200 || data?.code === 0 + }) + } + + // 处理 401 未授权 if (statusCode === 401) { uni.removeStorageSync('access_token') uni.removeStorageSync('refresh_token') @@ -41,8 +64,8 @@ const request = (options) => { reject(new Error('登录已过期,请重新登录')) return } - - // 后端返回格式: { code, message, data } + + // 后端返回格式:{ code, message, data } if (data.code === 200 || data.code === 0) { resolve(data) } else { @@ -50,6 +73,14 @@ const request = (options) => { } }, fail: (err) => { + // 错误日志 + if (debug) { + console.error('[API Error]', { + path: options.url, + error: err.errMsg, + env: import.meta.env.VITE_APP_ENV + }) + } reject(new Error(err.errMsg || '网络错误')) } }) @@ -57,7 +88,7 @@ const request = (options) => { } /** - * GET请求 + * GET 请求 */ export const get = (url, params = {}) => { // 构建查询字符串 @@ -65,33 +96,33 @@ export const get = (url, params = {}) => { .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`) .join('&') const fullUrl = queryString ? `${url}?${queryString}` : url - + return request({ url: fullUrl, method: 'GET' }) } /** - * POST请求 + * POST 请求 */ export const post = (url, data = {}) => { return request({ url, method: 'POST', data }) } /** - * PUT请求 + * PUT 请求 */ export const put = (url, data = {}) => { return request({ url, method: 'PUT', data }) } /** - * DELETE请求 + * DELETE 请求 */ export const del = (url, params = {}) => { const queryString = Object.keys(params) .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`) .join('&') const fullUrl = queryString ? `${url}?${queryString}` : url - + return request({ url: fullUrl, method: 'DELETE' }) }