@less-is-more/less-js 1.4.4 → 1.4.6

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@less-is-more/less-js",
3
- "version": "1.4.4",
3
+ "version": "1.4.6",
4
4
  "description": "Fast develop kit for nodejs",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
package/src/oss.js CHANGED
@@ -7,7 +7,7 @@ const util = require("util");
7
7
  module.exports = class Oss {
8
8
  static async upload(
9
9
  path,
10
- reqFile,
10
+ reqFileOrPath,
11
11
  prefix,
12
12
  accessKeyId,
13
13
  accessKeySecret,
@@ -25,14 +25,20 @@ module.exports = class Oss {
25
25
  endpoint: "oss-" + region + ".aliyuncs.com",
26
26
  });
27
27
  let id = uuid.v4().replace(/-/g, "");
28
-
29
- // 计算文件名
30
- const fileName = reqFile.originalFilename;
31
- let subfix = "";
28
+ let fileName, filePath, subfix;
29
+ // 判断是否文本
30
+ if (typeof reqFileOrPath == "string") {
31
+ fileName = reqFileOrPath.split("/").pop();
32
+ filePath = reqFileOrPath;
33
+ } else {
34
+ // 计算文件名
35
+ fileName = reqFileOrPath.originalFilename;
36
+ filePath = reqFileOrPath.path;
37
+ }
32
38
  if (fileName.includes(".")) {
33
39
  subfix = fileName.split(".").pop();
34
40
  }
35
- let filePath = reqFile.path;
41
+
36
42
  if (toWidth) {
37
43
  let imageObject = await util.promisify(Jimp.read)(filePath);
38
44
  if (toWidth < imageObject.bitmap.width) {
package/src/router.js CHANGED
@@ -10,7 +10,7 @@ module.exports = class Router {
10
10
 
11
11
  /**
12
12
  * 根据request路由
13
- * @param {object} targets 路由表。支持before和after,如果提供了会在执行主方法前后执行。
13
+ * @param {object} targets 路由表。支持before和after,如果提供了会在执行主方法前后执行。需要async的方法。并且before返回值为Ret,如果不为true,会直接返回
14
14
  * @param {*} req 请求
15
15
  * @param {*} res 响应
16
16
  * @param {*} context 系统属性
@@ -32,7 +32,11 @@ module.exports = class Router {
32
32
  // before
33
33
  if (targets.before) {
34
34
  console.log("start before action");
35
- await targets.before(req, res, context);
35
+ const beforeResult = await targets.before(req, res, context);
36
+ if (beforeResult && !beforeResult.success) {
37
+ this._handleReturn(beforeResult, startTime, req, res);
38
+ return;
39
+ }
36
40
  }
37
41
  console.log("start main action");
38
42
  // 需要直接调用,不能用中间变量
@@ -42,9 +46,8 @@ module.exports = class Router {
42
46
  console.log("start after action");
43
47
  await targets.after(req, res, context);
44
48
  }
45
- const useTime = (new Date().getTime() - startTime) / 1000;
46
49
  // controller方法有返回值的自动send
47
- this._handleReturn(result, useTime, req, res);
50
+ this._handleReturn(result, startTime, req, res);
48
51
  } catch (e) {
49
52
  console.log(e);
50
53
  return this._sendError(e.message ? e.message : "出错啦", res);
@@ -128,7 +131,8 @@ module.exports = class Router {
128
131
  });
129
132
  }
130
133
 
131
- static _handleReturn(result, useTime, req, res) {
134
+ static _handleReturn(result, startTime, req, res) {
135
+ const useTime = (new Date().getTime() - startTime) / 1000;
132
136
  if (!Param.isBlank(result)) {
133
137
  let content;
134
138
  if (result instanceof Ret) {
package/test/test-oss.js CHANGED
@@ -40,5 +40,19 @@ describe("oss.js", () => {
40
40
  );
41
41
  console.log(result);
42
42
  });
43
+ it("upload with path", async () => {
44
+ const result = await Oss.upload(
45
+ "test",
46
+ "C:/Users/shang/Pictures/sheng-logo.png",
47
+ "pp",
48
+ "STS.NUQkfS4uutHRRq94x9hpcf2Ao",
49
+ "7rzHRnBor2WbxQYPzHFZM6eVn2xMMPWssq2wsrNJToLv",
50
+ "CAIShgJ1q6Ft5B2yfSjIr5bkINzn2apUw4q5UFeI0HhsZP9PiffqjTz2IH1MeXduBuAZsfk2nGpT7fgelqZdVplOWU3Da+B364xK7Q75/BttJV/tv9I+k5SANTW5KXyShb3/AYjQSNfaZY3eCTTtnTNyxr3XbCirW0ffX7SClZ9gaKZ8PGD6F00kYu1bPQx/ssQXGGLMPPK2SH7Qj3HXEVBjt3gX6wo9y9zmn5LGskWD3QWgkrRO/tmtGPX+MZkwZqUYesyuwel7epDG1CNt8BVQ/M909vcZoWqZ4I7NXAYMuk3caLGKrscfBQt4d7U8NYVgq/fRhfBzp/DSkILNzBJALV/Y0qNT2WHLGoABd1HbGnGE408ZNOYLDxBIjDMn8hmcaBxw9ZG7LathUeOLjWaYxX07lh11nbfRheMXtQ6tTrsDjCV/7AW/zIu5YIiy6GvE4GzwkX2nFsNR/zd92MXSGNE18ECDB8Z490RwJdGPkwQktTEkAcBDaC958kcGovCH4jojGjGWlQqK/jk=",
51
+ "cn-shenzhen",
52
+ "shengapp-dev",
53
+ 50
54
+ );
55
+ console.log(result);
56
+ });
43
57
  });
44
58
  });
@@ -212,4 +212,30 @@ describe("router.js", () => {
212
212
  };
213
213
  await Router.route(targets, req, res);
214
214
  });
215
+
216
+ it("before return false", async () => {
217
+ let targets = {
218
+ before: async () => {
219
+ return new Ret(false, "错误", Ret.CODE_LOGIC);
220
+ },
221
+ "/product": {
222
+ add: function (req, res) {
223
+ assert(req.params.a === 1);
224
+ return 1;
225
+ },
226
+ },
227
+ };
228
+ let req = {
229
+ method: "GET",
230
+ path: "/product/add",
231
+ query: { a: 1 },
232
+ headers: {},
233
+ };
234
+ let res = {
235
+ send: function (data) {
236
+ console.log("send: " + data);
237
+ },
238
+ };
239
+ await Router.route(targets, req, res);
240
+ });
215
241
  });