前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2022年02月 微信小程序-Request网络请求的封装

【愚公系列】2022年02月 微信小程序-Request网络请求的封装

作者头像
愚公搬代码
发布2022-02-22 16:44:56
7810
发布2022-02-22 16:44:56
举报
文章被收录于专栏:历史专栏

文章目录

前言

Request网络请求在任何应用中都是必不可少的,但微信小程序的wx.request()太过单一没法满足复杂的请求,所以就有本片文章讲解如何封装小程序的请求

一、微信小程序

首先我们来看一下官方文档中介绍的wx.request()

默认使用方式

代码语言:javascript
复制
wx.request({
  url: 'test.php', //仅为示例,并非真实的接口地址
  data: {},
  header: {
      'content-type': 'application/json' // 默认值
  },
  success: function(res) {
    console.log(res.data)
  }
})

二、Request.js封装

Request.js是基于WX API的封装只有一个文件

代码语言:javascript
复制
const URL = 'http://love520.com'
 
module.exports = {
   //封装request方法,第一个参数请求地址,第二个参数传递参数,第三个参数请求方式
    request:function(url,data={},method){
       //返回promise对象  resolve 成功的回调方法 reject失败的回调方法 一旦发生就不会改变
        return new Promise((resolve, reject)=>{
            wx.request({
                url: URL + url,
                data,
                method,
                header:{
                    'token':wx.getStorageSync('token')
                },
                success:(res)=>{
                    if(res.statusCode === 200 && res.data.code === 200){
                        resolve(res.data)
                        wx.hideLoading()
                    } else {
                        wx.showToast({
                            icon:'error',
                            title: res.Msg,
                        })
                        reject(res.Msg)
                    }
                },
                fail:(err)=>{
                    wx.showToast({
                        icon:'error',
                        title: '接口无响应',
                    })
                    reject('接口无响应')
                }
            })
        })
    }
}

三、Route.js封装

Route.js主要是区分业务的怎删改查根据领域模型划分多个业务体系

代码语言:javascript
复制
const { request } = require('./request.js')
//restful类型接口
module.exports = {
  GetUsers:(data) => request('/api/identity/users/{id}',{},'GET'),
  PostUsers:(data) => request('/api/identity/users/{id}',data,'POST'),
  PutUsers:(data) => request('/api/identity/users/{id}',data,'PUT'),
  DeleteUsers:(data) => request('/api/identity/users/{id}',{},'DELETE'),
}

四、使用

代码语言:javascript
复制
import { GetUsers,PostUsers,PutUsers,DeleteUsers} from "../../utils/route"
GetUsers(id,{}).then((res)=>{
    this.setData({
        list: res.data
    })
})
PostUsers(id,data).then((res)=>{
    wx.showToast({
        icon:'none',
        title: res.Msg,
    })
})
PutUsers(id,data).then((res)=>{
    wx.showToast({
        icon:'none',
        title: res.Msg,
    })
})
DeleteUsers(id,{}).then((res)=>{
    wx.showToast({
        icon:'none',
        title: res.Msg,
    })
})
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/02/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 一、微信小程序
  • 二、Request.js封装
  • 三、Route.js封装
  • 四、使用
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档