@less-is-more/less-js 1.4.27-17 → 1.4.27-3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/router.js +19 -24
package/package.json
CHANGED
package/src/router.js
CHANGED
|
@@ -13,38 +13,35 @@ module.exports = class Router {
|
|
|
13
13
|
* @param {object} targets 路由表。支持before和after,如果提供了会在执行主方法前后执行。需要async的方法。并且before返回值为Ret,如果不为true,会直接返回
|
|
14
14
|
* @param {*} event 事件载体
|
|
15
15
|
* @param {*} context 系统属性
|
|
16
|
+
* @param {*} callback 回调
|
|
16
17
|
* @returns 设置了useDefaultFormat为true,会返回错误信息
|
|
17
18
|
*/
|
|
18
|
-
static async routeEvent(targets, event, context) {
|
|
19
|
-
|
|
19
|
+
static async routeEvent(targets, event, context, callback) {
|
|
20
|
+
console.log("event:", event);
|
|
21
|
+
const eventObj = JSON.parse(event);
|
|
20
22
|
const req = {
|
|
21
23
|
path: eventObj.rawPath,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
queries: Param.isBlank(rawQueryString)
|
|
25
|
+
? {}
|
|
26
|
+
: qs.parse(eventObj.rawQueryString),
|
|
25
27
|
headers: eventObj.headers,
|
|
26
|
-
body: eventObj.
|
|
27
|
-
? Buffer.from(eventObj.body, "base64").toString("utf-8")
|
|
28
|
-
: eventObj.body,
|
|
28
|
+
body: eventObj.body,
|
|
29
29
|
isBase64Encoded: eventObj.isBase64Encoded,
|
|
30
30
|
};
|
|
31
|
-
// 格式兼容
|
|
32
|
-
if (req.headers) {
|
|
33
|
-
req.headers["content-type"] = req.headers["Content-Type"];
|
|
34
|
-
}
|
|
35
31
|
let res = {
|
|
36
|
-
|
|
37
|
-
send: function (content) {
|
|
32
|
+
send: (content) => {
|
|
38
33
|
this.content = content;
|
|
39
34
|
},
|
|
35
|
+
content: "",
|
|
40
36
|
};
|
|
41
37
|
// 转换后调用原来的方法
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
body: res.content.startsWith("{") ? JSON.parse(res.content) : res.content,
|
|
38
|
+
const result = this.route(targets, req, res, context);
|
|
39
|
+
const finalResponse = {
|
|
40
|
+
headers: Object.assign(result.headers, event.resHeaders),
|
|
41
|
+
body: res.content,
|
|
47
42
|
};
|
|
43
|
+
|
|
44
|
+
callback(null, finalResponse);
|
|
48
45
|
}
|
|
49
46
|
|
|
50
47
|
/**
|
|
@@ -64,9 +61,7 @@ module.exports = class Router {
|
|
|
64
61
|
"p:",
|
|
65
62
|
req.method,
|
|
66
63
|
req.path,
|
|
67
|
-
req.headers
|
|
68
|
-
? req.headers["content-type"] || req.headers["Content-Type"]
|
|
69
|
-
: "",
|
|
64
|
+
req.headers ? req.headers["content-type"] : "",
|
|
70
65
|
"q:",
|
|
71
66
|
req.queries ? qs.stringify(req.queries).substring(0, 500) : "",
|
|
72
67
|
"b:",
|
|
@@ -144,7 +139,7 @@ module.exports = class Router {
|
|
|
144
139
|
if (isFile) {
|
|
145
140
|
await this._getFile(req);
|
|
146
141
|
} else if (isJson) {
|
|
147
|
-
const data =
|
|
142
|
+
const data = await promisify(body)(req);
|
|
148
143
|
if (!Param.isBlank(data)) {
|
|
149
144
|
try {
|
|
150
145
|
req.sourceBody = data.toString();
|
|
@@ -154,7 +149,7 @@ module.exports = class Router {
|
|
|
154
149
|
}
|
|
155
150
|
}
|
|
156
151
|
} else {
|
|
157
|
-
const data =
|
|
152
|
+
const data = await promisify(body)(req);
|
|
158
153
|
req.sourceBody = decodeURIComponent(data.toString());
|
|
159
154
|
req.body = qs.parse(data.toString());
|
|
160
155
|
}
|