- 创建一个ajax文件,在ajax文件里面再创建一个http.js文件,在创建一个api文件夹,结构如下:
- 在http.js文件代码如下:
export default ({name,data={}})=>{
//返回一个Promise对象
return new Promise((resolve,reject)=>{
//打开一个loading弹窗
uni.showLoading({})
uniCloud.callFunction({
name,
data,
success({result}) {
if(result.code === 0){
//请求成功,且有数据
resolve(result.data);
}else{
//后端没有查询到数据值
uni.showToast({
icon:"none",
title:result.msg
})
}
},
fail(err) {
//请求失败
reject(err)
},
complete() {
//完成状态,关闭弹窗
uni.hideLoading()
}
})
})
}
- 在api文件夹里面创建index.js,获取所有方法。index.js文件代码如下:
//得到当前文件夹下以.js结尾的所有文件
const requireApi = require.context('.', true, /.js$/);
let module = {}
console.log(requireApi.keys())
requireApi.keys().forEach((key,index)=>{
if(key == "./index.js") return
Object.assign(module,requireApi(key))
})
console.log(module)
export default module;
获取方法打印如下:
- interface文件夹下各个业务的请求方法,例如home.js代码展示:
import ajax from "../../http.js";
export function get_label_list(data) {
return ajax({
name: "get_label_list",
data
})
}
export function get_article_list(data) {
return ajax({
name: "get_article_list",
data
})
}
//添加/取消文章收藏
export function update_save_like(data) {
return ajax({
name: 'update_save_like',
data
})
}
// 获取搜索文章内容
export function get_search_data(data) {
return ajax({
name: 'get_search_data',
data
})
}
// 修改用户保存的选项卡标签
export function update_label_ids(data){
return ajax({
name:"update_label_ids",
data
})
}
- 最后在main.js中 将module挂载到Vue的原型对象上,那么全局可以使用了。