Files
sundynix-pets/pets-fe/utils/request.js
T
Blizzard 609f7d06cf init: 毛孩子计划 小程序 + Go 后端 + 内嵌后台
- pets-fe: 微信原生小程序(首页/计划/记录/报告/社区/引导),
  服务端驱动、无假数据;弹层改用 scroll-view,打开时隐藏自定义 tabBar
- pets-be: Gin + GORM(MySQL, sundynix_ 前缀) + MinIO,统一响应/分页,
  微信 code2session 登录,provider-neutral AI(DeepSeek),go:embed React 后台
- 修复:分段选择类型不匹配(字符串 vs 数字)导致选不中

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 15:36:55 +08:00

70 lines
1.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const { BASE_URL } = require('./config.js');
const TOKEN_KEY = 'pets_token';
function getToken() {
return wx.getStorageSync(TOKEN_KEY) || '';
}
function setToken(t) {
wx.setStorageSync(TOKEN_KEY, t);
}
function clearToken() {
wx.removeStorageSync(TOKEN_KEY);
}
// 统一请求:注入 token,解析 {code,message,data},成功返回 data,失败 reject(Error)
function request({ url, method = 'GET', data, header = {} }) {
return new Promise((resolve, reject) => {
const token = getToken();
wx.request({
url: BASE_URL + url,
method,
data,
header: Object.assign(
{ 'Content-Type': 'application/json' },
token ? { Authorization: 'Bearer ' + token } : {},
header,
),
success(res) {
const body = res.data;
if (body && typeof body === 'object' && 'code' in body) {
if (body.code === 0) return resolve(body.data);
if (body.code === 40100) clearToken();
return reject(new Error(body.message || '请求失败'));
}
resolve(body);
},
fail(err) {
reject(new Error((err && err.errMsg) || '网络错误'));
},
});
});
}
// 文件上传(multipart
function uploadFile(filePath) {
return new Promise((resolve, reject) => {
const token = getToken();
wx.uploadFile({
url: BASE_URL + '/api/upload',
filePath,
name: 'file',
header: token ? { Authorization: 'Bearer ' + token } : {},
success(res) {
try {
const body = JSON.parse(res.data);
if (body.code === 0) return resolve(body.data);
reject(new Error(body.message || '上传失败'));
} catch (e) {
reject(new Error('上传响应解析失败'));
}
},
fail(err) {
reject(new Error((err && err.errMsg) || '上传失败'));
},
});
});
}
module.exports = { request, uploadFile, getToken, setToken, clearToken };