This commit is contained in:
@@ -1,4 +0,0 @@
|
||||
const { apiBaseUrl } = require('../config')
|
||||
function request(path, options = {}) { return new Promise((resolve, reject) => wx.request({ url: apiBaseUrl + path, method: options.method || 'GET', data: options.data, header: { 'content-type': 'application/json', Authorization: `Bearer ${wx.getStorageSync('token') || ''}` }, success: (res) => res.statusCode >= 200 && res.statusCode < 300 ? resolve(res.data) : reject(new Error(res.data && res.data.error || '网络请求失败')), fail: reject })) }
|
||||
function upload(filePath) { return new Promise((resolve, reject) => wx.uploadFile({ url: apiBaseUrl + '/api/uploads', filePath, name: 'files', header: { Authorization: `Bearer ${wx.getStorageSync('token') || ''}` }, success: (res) => { const data = JSON.parse(res.data || '{}'); res.statusCode < 300 ? resolve(data.files[0]) : reject(new Error(data.error || '上传失败')) }, fail: reject })) }
|
||||
module.exports = { request, upload, apiBaseUrl }
|
||||
@@ -0,0 +1,31 @@
|
||||
import { apiBaseUrl } from '../config'
|
||||
|
||||
interface RequestOptions { method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; data?: unknown }
|
||||
interface UploadResult { url: string }
|
||||
|
||||
export function request<T>(path: string, options: RequestOptions = {}): Promise<T> {
|
||||
return new Promise((resolve, reject) => wx.request({
|
||||
url: apiBaseUrl + path,
|
||||
method: (options.method || 'GET') as WechatMiniprogram.RequestOption['method'],
|
||||
data: options.data as WechatMiniprogram.IAnyObject,
|
||||
header: { 'content-type': 'application/json', Authorization: `Bearer ${wx.getStorageSync('token') || ''}` },
|
||||
success: (response) => response.statusCode >= 200 && response.statusCode < 300
|
||||
? resolve(response.data as T)
|
||||
: reject(new Error((response.data as { error?: string })?.error || '网络请求失败')),
|
||||
fail: reject
|
||||
}))
|
||||
}
|
||||
|
||||
export function upload(filePath: string): Promise<UploadResult> {
|
||||
return new Promise((resolve, reject) => wx.uploadFile({
|
||||
url: apiBaseUrl + '/api/uploads', filePath, name: 'files',
|
||||
header: { Authorization: `Bearer ${wx.getStorageSync('token') || ''}` },
|
||||
success: (response) => {
|
||||
const data = JSON.parse(response.data || '{}') as { files?: UploadResult[]; error?: string }
|
||||
response.statusCode < 300 && data.files?.[0] ? resolve(data.files[0]) : reject(new Error(data.error || '上传失败'))
|
||||
},
|
||||
fail: reject
|
||||
}))
|
||||
}
|
||||
|
||||
export { apiBaseUrl }
|
||||
Reference in New Issue
Block a user