skybase 0.1.83 → 0.1.86

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 (113) hide show
  1. package/.eslintignore +35 -35
  2. package/.eslintrc +41 -41
  3. package/CHANGELOG.md +29 -486
  4. package/README.md +214 -214
  5. package/demo/1-simple/README.md +1 -1
  6. package/demo/1-simple/index.js +7 -7
  7. package/demo/1-simple/model/api/demo.js +26 -26
  8. package/demo/1-simple/model/api/frontApiFiles//347/224/250/344/272/216/345/261/225/347/244/272/345/246/202/344/275/225/345/256/232/344/271/211/344/270/200/344/270/252/346/216/245/345/217/243.js +32 -32
  9. package/demo/1-simple/model//347/224/250/344/272/216/345/261/225/347/244/272/345/246/202/344/275/225/345/256/232/344/271/211/344/270/200/344/270/252/346/216/245/345/217/243.js +29 -29
  10. package/demo/1-simple/package.json +11 -11
  11. package/demo/1-simple/router/demo.js +8 -8
  12. package/demo/1-simple/ws_router/echo.js +9 -9
  13. package/demo/2-api-register/README.md +1 -1
  14. package/demo/2-api-register/config/config.default.js +25 -25
  15. package/demo/2-api-register/config/config.dev.js +15 -15
  16. package/demo/2-api-register/config/config.prod.js +15 -15
  17. package/demo/2-api-register/config/config.test.js +15 -15
  18. package/demo/2-api-register/config/index.js +32 -32
  19. package/demo/2-api-register/model/api/demo.js +26 -26
  20. package/demo/2-api-register/model/api/dir/demo.js +27 -27
  21. package/demo/2-api-register/model/api/redirect.js +30 -30
  22. package/demo/2-api-register/model/api/use-limit.js +45 -45
  23. package/demo/2-api-register/package.json +11 -11
  24. package/demo/2-api-register/router/demo.js +9 -9
  25. package/demo/2-api-register/router/dir/demo.js +9 -9
  26. package/demo/2-api-register/router/redirect.js +8 -8
  27. package/demo/2-api-register/router/use-limit.js +9 -9
  28. package/demo/3-full-module/README.md +1 -1
  29. package/demo/3-full-module/config/config.default.js +33 -33
  30. package/demo/3-full-module/config/config.dev.js +15 -15
  31. package/demo/3-full-module/config/config.prod.js +15 -15
  32. package/demo/3-full-module/config/config.test.js +15 -15
  33. package/demo/3-full-module/config/index.js +32 -32
  34. package/demo/3-full-module/index.js +36 -36
  35. package/demo/3-full-module/model/api/demo.js +26 -26
  36. package/demo/3-full-module/model/api/dir/demo.js +26 -26
  37. package/demo/3-full-module/model/api/use-rabbitmq.js +26 -26
  38. package/demo/3-full-module/model/api/use-redis.js +33 -33
  39. package/demo/3-full-module/package.json +17 -17
  40. package/demo/3-full-module/rabbit-consumer.js +45 -45
  41. package/demo/3-full-module/router/demo.js +9 -9
  42. package/demo/3-full-module/router/dir/demo.js +9 -9
  43. package/demo/3-full-module/router/use-redis.js +14 -14
  44. package/demo/4-api-to-file/README.md +8 -8
  45. package/demo/4-api-to-file/config/config.default.js +8 -8
  46. package/demo/4-api-to-file/config/index.js +32 -32
  47. package/demo/4-api-to-file/index.js +6 -6
  48. package/demo/4-api-to-file/model/api/api.js +142 -142
  49. package/demo/4-api-to-file/package.json +14 -14
  50. package/demo/4-api-to-file/router/api.js +37 -37
  51. package/demo/5-mock-api/README.md +2 -2
  52. package/demo/5-mock-api/config/config.default.js +8 -8
  53. package/demo/5-mock-api/config/index.js +32 -32
  54. package/demo/5-mock-api/index.js +24 -24
  55. package/demo/5-mock-api/model/api/mock.js +213 -213
  56. package/demo/5-mock-api/model/mock.js +27 -27
  57. package/demo/5-mock-api/package.json +15 -15
  58. package/demo/5-mock-api/router/mock.js +20 -20
  59. package/demo/6-sql-test/README.md +1 -1
  60. package/demo/6-sql-test/config/config.default.js +61 -61
  61. package/demo/6-sql-test/config/config.dev.js +15 -15
  62. package/demo/6-sql-test/config/config.prod.js +15 -15
  63. package/demo/6-sql-test/config/config.test.js +15 -15
  64. package/demo/6-sql-test/config/index.js +32 -32
  65. package/demo/6-sql-test/index.js +48 -48
  66. package/demo/6-sql-test/model/api/dir/dir/dir/four.js +18 -18
  67. package/demo/6-sql-test/model/api/dir/dir/three.js +26 -26
  68. package/demo/6-sql-test/model/api/dir/two.js +26 -26
  69. package/demo/6-sql-test/model/api/one.js +18 -18
  70. package/demo/6-sql-test/package.json +18 -18
  71. package/demo/6-sql-test/router/test.js +38 -38
  72. package/demo/6-sql-test/service/test.js +96 -96
  73. package/demo/7-token/README.md +1 -1
  74. package/demo/7-token/config/config.default.js +35 -35
  75. package/demo/7-token/config/config.dev.js +15 -15
  76. package/demo/7-token/config/config.prod.js +15 -15
  77. package/demo/7-token/config/config.test.js +15 -15
  78. package/demo/7-token/config/index.js +32 -32
  79. package/demo/7-token/model/api/demo.js +43 -43
  80. package/demo/7-token/package.json +17 -17
  81. package/demo/8-test/README.md +1 -1
  82. package/demo/8-test/config/config.default.js +35 -35
  83. package/demo/8-test/config/config.dev.js +15 -15
  84. package/demo/8-test/config/config.prod.js +15 -15
  85. package/demo/8-test/config/config.test.js +15 -15
  86. package/demo/8-test/config/index.js +32 -32
  87. package/demo/8-test/index.js +30 -30
  88. package/demo/8-test/model/api/demo.js +43 -43
  89. package/demo/8-test/model/api/dir/two.js +26 -26
  90. package/demo/8-test/model/api/mock.js +157 -157
  91. package/demo/8-test/model/api/one.js +150 -150
  92. package/demo/8-test/model/mock.js +35 -35
  93. package/demo/8-test/package.json +17 -17
  94. package/demo/8-test/router/demo.js +45 -45
  95. package/demo/8-test/router/mock.js +20 -20
  96. package/demo/8-test/router/test.js +43 -43
  97. package/demo/8-test/service/test.js +35 -35
  98. package/demo/9-mysql-chart/config/config.dev.js +15 -15
  99. package/demo/9-mysql-chart/config/config.prod.js +15 -15
  100. package/demo/9-mysql-chart/config/config.test.js +15 -15
  101. package/demo/9-mysql-chart/index.js +36 -36
  102. package/demo/9-mysql-chart/package.json +18 -18
  103. package/lib/middleware/sky-api-register.js +348 -348
  104. package/lib/middleware/sky-cors.js +8 -8
  105. package/lib/middleware/sky-output.js +83 -83
  106. package/lib/middleware/sky-static-server.js +16 -16
  107. package/outFiles.js +325 -325
  108. package/package.json +50 -67
  109. package/sky-module/create_amqplib.js +69 -69
  110. package/sky-module/create_ioredis.js +47 -47
  111. package/sky-module/create_kafka.js +24 -24
  112. package/skyconfig.js +2 -1
  113. package/tests/test.js +173 -173
@@ -1,9 +1,9 @@
1
- /**
2
- * 跨域
1
+ /**
2
+ * 跨域
3
3
  * */
4
-
5
- const cors = require('koa2-cors')
6
-
7
- module.exports = cors({
8
- maxAge: 600
9
- })
4
+
5
+ const cors = require('koa2-cors')
6
+
7
+ module.exports = cors({
8
+ maxAge: 600
9
+ })
@@ -1,85 +1,85 @@
1
- /**
2
- * 记录api运行前后的状态,并封装到response中
1
+ /**
2
+ * 记录api运行前后的状态,并封装到response中
3
3
  * */
4
-
5
- const $G = global.$G = global.$G || {}
6
- const $ = require('meeko')
7
-
8
- // 是否停止接收新的网络请求。如果设为 true ,来了新请求,还是会先判断参数是否正确,是否登录,然后返回 503
9
- $G.stopNewRequest = false
10
-
11
- // 拦截最后的返回
12
- const interceptLastReturn = (ctx) => {
13
- switch (ctx.status) {
14
- case 200:
15
- break
16
- case 204:
17
- ctx.throwCode(204, 'sys:无内容返回')
18
- break
19
- case 405:
20
- ctx.throwCode(405, 'sys:无访问api权限')
21
- break
22
- case 404:
23
- // ctx.throwCode.call(ctx, 404, 'sys:无此api或api发生错误', '', ctx)
24
- ctx.throwCode(404, 'sys:无此api或api发生错误')
25
- break
26
- case 401:
27
- ctx.throwCode(401, 'sys:无权限')
28
- break
29
- default:
30
- ctx.throwCode(ctx.status, 'sys:服务端未知错误')
31
- }
32
- }
33
-
34
- module.exports = async (ctx, next) => {
35
- // (1) 进入路由
36
- const start = Date.now()
37
- try {
38
- if ($G.stopNewRequest) {
39
- ctx.throwCode(503, '服务端暂时停止服务,请稍后再试')
40
- } else {
41
- await next()
42
- }
43
- } catch (e) {
44
- $.err(e.stack)
45
- switch (true) {
46
- case e.message.indexOf('ETIMEDOUT') > -1:
47
- ctx.throwCode(599, '服务端超时')
48
- break
49
- case e.message.indexOf('ENOENT') > -1:
50
- ctx.throwCode(598, '服务端找不到路径')
51
- break
52
- case e.message === 'request entity too large':
53
- ctx.throwCode(413, `请求体过大:${e.length} / ${e.limit} 字节`)
54
- break
55
- default:
56
- ctx.throwCode(500, e.message, e)
57
- }
58
- }
59
-
60
- // (5) 再次进入 x-response-time 中间件,记录2次通过此中间件「穿越」的时间
61
- let ms = Date.now() - start
62
- // this.response.type = 'html' //总体控制mime
63
- ctx.set('X-Response-Time', ms + 'ms')
64
-
65
- // 这个功能很久没用了,注释掉
66
- // if (aModule.includes('track')) {
67
- // let url = ctx.request.url
68
- // let _url = url.split('?')[0].split('/')
69
- // if (api[_url[1]] && Pro.track.apiTrack) {
70
- // req.post({
71
- // url: `${Pro.track.host}/chart/apirecord`,
72
- // form: { k: _url.join('_'), v: ms },
73
- // json: true
74
- // },
75
- // function (e, d) {
76
- // // $.dir(d.body)
77
- // })
78
- // }
79
- // }
80
- interceptLastReturn(ctx)
81
4
 
82
- /* this.set('token','kongxiangfeng');
83
- this.type = 'json'; */
84
- // (6) 返回 this.body
85
- }
5
+ const $G = global.$G = global.$G || {}
6
+ const $ = require('meeko')
7
+
8
+ // 是否停止接收新的网络请求。如果设为 true ,来了新请求,还是会先判断参数是否正确,是否登录,然后返回 503
9
+ $G.stopNewRequest = false
10
+
11
+ // 拦截最后的返回
12
+ const interceptLastReturn = (ctx) => {
13
+ switch (ctx.status) {
14
+ case 200:
15
+ break
16
+ case 204:
17
+ ctx.throwCode(204, 'sys:无内容返回')
18
+ break
19
+ case 405:
20
+ ctx.throwCode(405, 'sys:无访问api权限')
21
+ break
22
+ case 404:
23
+ // ctx.throwCode.call(ctx, 404, 'sys:无此api或api发生错误', '', ctx)
24
+ ctx.throwCode(404, 'sys:无此api或api发生错误')
25
+ break
26
+ case 401:
27
+ ctx.throwCode(401, 'sys:无权限')
28
+ break
29
+ default:
30
+ ctx.throwCode(ctx.status, 'sys:服务端未知错误')
31
+ }
32
+ }
33
+
34
+ module.exports = async (ctx, next) => {
35
+ // (1) 进入路由
36
+ const start = Date.now()
37
+ try {
38
+ if ($G.stopNewRequest) {
39
+ ctx.throwCode(503, '服务端暂时停止服务,请稍后再试')
40
+ } else {
41
+ await next()
42
+ }
43
+ } catch (e) {
44
+ $.err(e.stack)
45
+ switch (true) {
46
+ case e.message.indexOf('ETIMEDOUT') > -1:
47
+ ctx.throwCode(599, '服务端超时')
48
+ break
49
+ case e.message.indexOf('ENOENT') > -1:
50
+ ctx.throwCode(598, '服务端找不到路径')
51
+ break
52
+ case e.message === 'request entity too large':
53
+ ctx.throwCode(413, `请求体过大:${e.length} / ${e.limit} 字节`)
54
+ break
55
+ default:
56
+ ctx.throwCode(500, e.message, e)
57
+ }
58
+ }
59
+
60
+ // (5) 再次进入 x-response-time 中间件,记录2次通过此中间件「穿越」的时间
61
+ let ms = Date.now() - start
62
+ // this.response.type = 'html' //总体控制mime
63
+ ctx.set('X-Response-Time', ms + 'ms')
64
+
65
+ // 这个功能很久没用了,注释掉
66
+ // if (aModule.includes('track')) {
67
+ // let url = ctx.request.url
68
+ // let _url = url.split('?')[0].split('/')
69
+ // if (api[_url[1]] && Pro.track.apiTrack) {
70
+ // req.post({
71
+ // url: `${Pro.track.host}/chart/apirecord`,
72
+ // form: { k: _url.join('_'), v: ms },
73
+ // json: true
74
+ // },
75
+ // function (e, d) {
76
+ // // $.dir(d.body)
77
+ // })
78
+ // }
79
+ // }
80
+ interceptLastReturn(ctx)
81
+
82
+ /* this.set('token','kongxiangfeng');
83
+ this.type = 'json'; */
84
+ // (6) 返回 this.body
85
+ }
@@ -1,16 +1,16 @@
1
- // NOTICE: 优先进入web容器
2
- const $ = require('meeko')
3
- const { rootDir, staticDir } = require('../../skyconfig')
4
- const path = require('path')
5
- const fs = require('fs')
6
- const skyStaticServer = require('koa-static')
7
- let wwwPath
8
- if (staticDir) {
9
- wwwPath = path.join(rootDir, staticDir)
10
- let isWwwExist = fs.existsSync(wwwPath)
11
- if (!isWwwExist) { console.log($.c.y(`😵 ${wwwPath} 静态文件服务配置但目录不存在`)) }
12
- } else {
13
- wwwPath = path.join(rootDir, './www')
14
- console.log($.c.y('😵 静态文件服务目录未配置 默认./www'))
15
- }
16
- module.exports = skyStaticServer(wwwPath)
1
+ // NOTICE: 优先进入web容器
2
+ const $ = require('meeko')
3
+ const { rootDir, staticDir } = require('../../skyconfig')
4
+ const path = require('path')
5
+ const fs = require('fs')
6
+ const skyStaticServer = require('koa-static')
7
+ let wwwPath
8
+ if (staticDir) {
9
+ wwwPath = path.join(rootDir, staticDir)
10
+ let isWwwExist = fs.existsSync(wwwPath)
11
+ if (!isWwwExist) { console.log($.c.y(`😵 ${wwwPath} 静态文件服务配置但目录不存在`)) }
12
+ } else {
13
+ wwwPath = path.join(rootDir, './www')
14
+ console.log($.c.y('😵 静态文件服务目录未配置 默认./www'))
15
+ }
16
+ module.exports = skyStaticServer(wwwPath)