封装步骤:
1.在src目录下新建utils/config.js用来存放请求地址,方便修改
// 配置服务器相关信息
export default{
host:'http://localhost:3000'
}
2.在src目录下新建utils/request.js
import config from './config.js'
export const myRequest = (url,data={},method='POST')=>{
return new Promise((resolve,reject)=>{
//1.new Promise初始化promise实例的状态为pending
uni.request({
withCredentials: true,
header:{
'content-type': 'application/x-www-form-urlencoded',
},
url: config.host +url,
data,
method,
success:(res)=>{
resolve(res) //resolve修改promise的状态为成功状态resolved
},
fail:(err)=>{
reject(err) //reject修改promise的状态为失败状态reject
}
})
})
}
3.挂载到mian.js
import Vue from 'vue'
import App from './App'
import { myRequest } from './utils/request.js'
import uView from "uview-ui";
Vue.use(uView);
Vue.prototype.$myRequest=myRequest
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
4.使用
//res为请求后端返回的数据
async login(){
let res = await this.$myRequest('/loginSubmit', {email,password})
}