@less-is-more/less-js 1.4.27-17 → 1.4.27-2

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/router.js +20 -24
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@less-is-more/less-js",
3
- "version": "1.4.27-17",
3
+ "version": "1.4.27-2",
4
4
  "description": "Fast develop kit for nodejs",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
package/src/router.js CHANGED
@@ -4,6 +4,7 @@ const qs = require("qs");
4
4
  const body = require("body");
5
5
  const multiparty = require("multiparty");
6
6
  const { promisify } = require("util");
7
+ const { log } = require("console");
7
8
 
8
9
  module.exports = class Router {
9
10
  static #defaultFormat = true;
@@ -13,38 +14,35 @@ module.exports = class Router {
13
14
  * @param {object} targets 路由表。支持before和after,如果提供了会在执行主方法前后执行。需要async的方法。并且before返回值为Ret,如果不为true,会直接返回
14
15
  * @param {*} event 事件载体
15
16
  * @param {*} context 系统属性
17
+ * @param {*} callback 回调
16
18
  * @returns 设置了useDefaultFormat为true,会返回错误信息
17
19
  */
18
- static async routeEvent(targets, event, context) {
19
- const eventObj = JSON.parse(event.toString());
20
+ static async routeEvent(targets, event, context, callback) {
21
+ log("event:", event);
22
+ const eventObj = JSON.parse(event);
20
23
  const req = {
21
24
  path: eventObj.rawPath,
22
- method: eventObj.requestContext.http.method,
23
- sourceIp: eventObj.requestContext.http.sourceIp,
24
- queries: eventObj.queryParameters,
25
+ queries: Param.isBlank(rawQueryString)
26
+ ? {}
27
+ : qs.parse(eventObj.rawQueryString),
25
28
  headers: eventObj.headers,
26
- body: eventObj.isBase64Encoded
27
- ? Buffer.from(eventObj.body, "base64").toString("utf-8")
28
- : eventObj.body,
29
+ body: eventObj.body,
29
30
  isBase64Encoded: eventObj.isBase64Encoded,
30
31
  };
31
- // 格式兼容
32
- if (req.headers) {
33
- req.headers["content-type"] = req.headers["Content-Type"];
34
- }
35
32
  let res = {
36
- content: "",
37
- send: function (content) {
33
+ send: (content) => {
38
34
  this.content = content;
39
35
  },
36
+ content: "",
40
37
  };
41
38
  // 转换后调用原来的方法
42
- await this.route(targets, req, res, context);
43
- return {
44
- statusCode: 200,
45
- headers: Object.assign(res.headers || {}, event.resHeaders || {}),
46
- body: res.content.startsWith("{") ? JSON.parse(res.content) : res.content,
39
+ const result = this.route(targets, req, res, context);
40
+ const finalResponse = {
41
+ headers: Object.assign(result.headers, event.resHeaders),
42
+ body: res.content,
47
43
  };
44
+
45
+ callback(null, finalResponse);
48
46
  }
49
47
 
50
48
  /**
@@ -64,9 +62,7 @@ module.exports = class Router {
64
62
  "p:",
65
63
  req.method,
66
64
  req.path,
67
- req.headers
68
- ? req.headers["content-type"] || req.headers["Content-Type"]
69
- : "",
65
+ req.headers ? req.headers["content-type"] : "",
70
66
  "q:",
71
67
  req.queries ? qs.stringify(req.queries).substring(0, 500) : "",
72
68
  "b:",
@@ -144,7 +140,7 @@ module.exports = class Router {
144
140
  if (isFile) {
145
141
  await this._getFile(req);
146
142
  } else if (isJson) {
147
- const data = req.body || (await promisify(body)(req));
143
+ const data = await promisify(body)(req);
148
144
  if (!Param.isBlank(data)) {
149
145
  try {
150
146
  req.sourceBody = data.toString();
@@ -154,7 +150,7 @@ module.exports = class Router {
154
150
  }
155
151
  }
156
152
  } else {
157
- const data = req.body || (await promisify(body)(req));
153
+ const data = await promisify(body)(req);
158
154
  req.sourceBody = decodeURIComponent(data.toString());
159
155
  req.body = qs.parse(data.toString());
160
156
  }