第一层:工具函数层 utils/request.js
// 工具函数层 request.js 所有的请求由它发出
// 1.公共API
const API = "公共API"
// 2.工具函数
const request = (options)=>{
// 默认参数
const defaultOption = {
method: "GET"
}
// 传入参数,后面的参数会覆盖默认参数
const finalOption = {...defaultOption, ...options} // 方式一【解构方式】
// const finalOption = Object.assign(defaultOption, options) // 方式二【合并方式】
// 包一层 Promise 壳子
return new Promise((resolve, reject) => {
wx.request({
url:API + finalOption.url,
data: finalOption.data,
method: finalOption.method,
// 请求成功数据resolve方法抛出
success(res){
resolve(res)
},
// 请求失败数据reject方法抛出
fail(err){
reject(err)
}
})
})
}
// 3.暴露出去
module.exports = request
第二层:api接口管理层 api/xxx.js
// 1.引入工具函数
const request = require("../../utils/request.js")
// 2.封装各个模块的接口函数
const getHouseListReq = (data) => {
return request({
url: "模块路径",
data
})
}
// 3.暴露接口函数
module.exports = {
getHouseListReq,
}
第三层:应用层 pages/xxx/xxx.js
// 1.引入接口函数---在Page外面引入
const { getHouseListReq } = require('../../api/xxx.js')
Page({
// 2.获取数据
async getHouseList() {
let res = await getHouseListReq(需要传的参数)
console.log(res);
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.getHouseList()
},
})