common/api目录下创建两个js文件 { apiList.js,api.js }
API列表
// common/api/apiList.js
const BASE_URL = 'https://api.example.com'; // 定义 API 的基础域名const apiList = {getData: BASE_URL + '/data',postData: BASE_URL + '/postData',// 其他接口路径...
};module.exports = apiList;
请求封装
// common/api/api.js
const apiList = require('./apiList.js');const request = (url, method, data) => {return new Promise((resolve, reject) => {wx.request({url: apiList[url], // 使用apiList中的接口路径method: method,data: data,header: {'content-type': 'application/json'},success(res) {resolve(res.data);},fail(err) {reject(err);}})})
}module.exports = {request: request
};
使用
// 在需要发送请求的页面或组件中引入api.js
const api = require('../../common/api/api.js');// 使用封装的请求函数,传入对应的apiList中的接口名称即可
api.request('getData', 'GET', { key: value }).then(res => {console.log(res);// 请求成功的处理逻辑
}).catch(err => {console.log(err);// 请求失败的处理逻辑
});
封装完毕 !
每次发起请求时带上 Code
const apiList = require('./apiList.js');// 定义一个函数来获取用户的code
const getUserCode = () => {return new Promise((resolve, reject) => {wx.login({success: function (res) {if (res.code) {resolve(res.code);} else {reject('获取用户code失败');}},fail: function (err) {reject(err);}});});
};// 修改网络请求函数,在调用时获取用户的code并携带在请求的header中
const request = (url, method, data) => {return getUserCode().then(code => {return new Promise((resolve, reject) => {wx.request({url: apiList[url], // 使用apiList中的接口路径method: method,data: data,header: {'content-type': 'application/json','X-WX-Code': code // 将code添加到请求的header中},success(res) {resolve(res.data);},fail(err) {reject(err);}})});});
};module.exports = {request: request
};