当前位置:   article > 正文

微信小程序--自制简易mock.js_页面挡板

页面挡板

http.js:http(以post为例) && mock

const app = getApp();
// 接口对应表
const apiList = [
	{
		path: "../pages/index/mock",// 页面挡板文件地址
		url: "getDataByService",// 接口方法名
		fnName: "getData"// mock文件中接口对应的方法名
	},
]

// 封装http 请求方法
const http = (params, resolve, reject) => {
	wx.showLoading({ mask: true });
	wx.request({
		url: app.globalData.apiUrl + params.url,// 拼接全局ip + 方法名
		header: { "Content-Type": "application/x-www-form-urlencoded" },
		method: 'POST',
		data: params.data,
		success: (res) => {
			wx.hideLoading();
			resolve(res);
		},
		fail: (e) => reject(e)
	})
}

// mock
const mock = (params, resolve, reject) => {
	for (let item of apiList) {
		if (item.url === params.url) {
			let path = require(item.path);
			resolve(path[item.fnName]);
		}
	}
	reject({ errMsg: `未发现url:${params.url},请先在apiList中定义` });
}

export const post = (params) => {
	return new Promise((resolve, reject) => {
		app.globalData.isMock ? mock(params, resolve, reject) : http(params, resolve, reject);
	})
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

app.js:定义全局IP && MOCK开关

App({
	globalData: {
		apiUrl: "http://www.xxx.com/",
		isMock: true
	}
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

mock.js:页面挡板文件

module.exports = {
  	getData: {
		"code": "200",
	    "msg'": "success",
	    "data": "mock调试成功!"
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

页面js文件

const http = require("../../utils/http");

http.post({ url: "getDataByService", data: {} })
.then( res => {
	console.log("success: ", res.data);
})
.catch( err => console.error(err) )
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/111589
推荐阅读
  

闽ICP备14008679号