网络请求(一)

定义模型类

什么是模型?
  • 对某个业务或者数据进行归纳总结,总结对外提供若干函数方法
  • 每个对外提供的函数方法都有各自独立的作用
定义”模型“的意义
  • 分离调用与内部实现,实现功能解耦
    在这里插入图片描述
    创建model文件夹,在model类中创建模型类Service
    在这里插入图片描述
class Service {

    /**
     *  分页获取服务列表
     * @param page
     * @param count
     * @param category_id 运行为null,
     * @param type
     */
    getServiceList(page, count, category_id = null, type = null) {
        console.log('获取服务列表')
        //发起网络请求,获取数据
        //统一的响应,异常处理
        wx.request({

        })
    }
}
//导出类,供外部使用
export default Service
使用模型类
import Service from "../../model/service";

const service = new Service()
Page({
    data: {},
    onLoad: function (options) {
        this._getServiceList()
    },
	//页面私有的函数,我们通常用下划线开头
    _getServiceList() {
        //发起网络请求,获取服务列表的数据
        service.getServiceList(1, 10)
    }
});

wx.request二次封装,简化使用

在utils文件夹下创建http.js文件,对wx.request二次封装

import APIConfig from "../config/api";
import exceptionMessage from "../config/exception-message";

class Http {
    static request({url, data, method = 'GET'}) {
        wx.request({
            url:APIConfig.baseUrl+url,
            data,
            method,
            success:(result)=>{
                console.log(result)
                //全局统一响应、异常处理
                if (result.statusCode<400) {
                    console.log(result)
                }
                //请求失败
                if (result.statusCode===401){
                    return
                }

                //打印错误信息
                Http._showError(result.data.error_code)
            }
        })
    }

    static _showError(errorCode, message) {
        console.log(errorCode)
        let title = ''
        const errorMessage = exceptionMessage[errorCode];
        //如果在异常信息类中没有异常信息就显示message,再如果异常信息也没有,就显示未知异常
        title = errorMessage || message || '未知异常'

        title = typeof title === 'object' ? Object.values(title).join(';') : title
        wx.showToast({
            title,
            icon:'none',
            duration:3000,
        })
    }
}

export default Http
根目录下创建config文件夹,创建全局使用文件api.js
const APIConfig={
    baseUrl:'https://qinchenju.com/homemaking/'
}

export default APIConfig

全局统一响应,异常处理

config 文件夹下创建exception-message.js文件

const exceptionMessage={
    10000:'这是测试文本'
}

export default exceptionMessage

使用

class Service {
    /**
     *
     * @param page 页码
     * @param count 每页数量
     * @param category_id 分类ID 可以为null
     * @param type 类型 可以为null
     */
    getServiceList(page, count, category_id = null, type = null) {
        //发起网络请求
        //统一网络响应处理,统一网络处理
        const res = Http.request({url: "v1/service/list", data: {page, count}})
    }
}

export default Service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值