Skip to content

Commit f2fda95

Browse files
committed
update: optimize general request logic
1 parent d9c6500 commit f2fda95

File tree

3 files changed

+29
-20
lines changed

3 files changed

+29
-20
lines changed

src/config/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ const API = {
33
PATH: '/api/v1'
44
};
55

6+
export const METHOD_ENUM = ['OPTIONS', 'GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'TRACE', 'CONNECT'];
7+
68
export default {
79
// 项目api配置
810
api: {

src/dc/util.js

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,8 @@
1-
import pathToRegexp from 'path-to-regexp';
21
import request from '../utils/request';
32
import config from '../config/index';
43

5-
const METHOD_EMUN = ['OPTIONS', 'GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'TRACE', 'CONNECT'];
6-
74
export default (oOption = {}, fnDataModel) => {
85
oOption.url = config.api.url + oOption.url;
9-
if (oOption.urlData) {
10-
oOption.url = fnCompileDynamicUrl(oOption.url, oOption.urlData);
11-
}
12-
oOption.method = String(oOption.method).toUpperCase();
13-
if (METHOD_EMUN.indexOf(oOption.method) === -1) {
14-
// 如果请求方式不是有效值,重置为默认值
15-
oOption.method = 'GET';
16-
}
176
return new Promise((resolve, reject) => {
187
request(oOption)
198
.then(res => {
@@ -46,8 +35,3 @@ export default (oOption = {}, fnDataModel) => {
4635
});
4736
});
4837
};
49-
50-
function fnCompileDynamicUrl(sUrl = '', oData = {}) {
51-
let toPath = pathToRegexp.compile(sUrl);
52-
return toPath(oData);
53-
}

src/utils/request.js

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,43 @@
1-
export default (oOptions = {}) => {
1+
import pathToRegexp from 'path-to-regexp';
2+
import { METHOD_ENUM } from '../config/index';
3+
4+
// 处理请求选项
5+
function fnHandleRequestOption(oOption) {
26
// 定义默认的全局请求参数
37
let oDefaultData = {};
48
const sAccessToken = wx.getStorageSync('sAccessToken');
59
if (sAccessToken) {
610
oDefaultData.accesstoken = sAccessToken;
711
}
812
// 使传入的请求参数,覆盖默认参数
9-
oOptions.data = {
13+
oOption.data = {
1014
...oDefaultData,
11-
...oOptions.data
15+
...oOption.data
1216
};
17+
// 动态路径参数解析
18+
if (oOption.urlData) {
19+
oOption.url = fnCompileDynamicUrl(oOption.url, oOption.urlData);
20+
}
21+
// 请求方式验证
22+
oOption.method = String(oOption.method).toUpperCase();
23+
if (METHOD_ENUM.indexOf(oOption.method) === -1) {
24+
// 如果请求方式不是有效值,重置为默认值
25+
oOption.method = 'GET';
26+
}
27+
return oOption;
28+
}
29+
30+
// 处理url path中的动态参数
31+
function fnCompileDynamicUrl(sUrl = '', oData = {}) {
32+
let toPath = pathToRegexp.compile(sUrl);
33+
return toPath(oData);
34+
}
1335

36+
export default (oOption = {}) => {
1437
return new Promise((resolve, reject) => {
1538
try {
1639
wx.request({
17-
...oOptions,
40+
...fnHandleRequestOption(oOption),
1841
success(res) {
1942
if (res.data) {
2043
resolve(res.data);

0 commit comments

Comments
 (0)