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.
- package/.eslintignore +35 -35
- package/.eslintrc +41 -41
- package/CHANGELOG.md +29 -486
- package/README.md +214 -214
- package/demo/1-simple/README.md +1 -1
- package/demo/1-simple/index.js +7 -7
- package/demo/1-simple/model/api/demo.js +26 -26
- 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
- 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
- package/demo/1-simple/package.json +11 -11
- package/demo/1-simple/router/demo.js +8 -8
- package/demo/1-simple/ws_router/echo.js +9 -9
- package/demo/2-api-register/README.md +1 -1
- package/demo/2-api-register/config/config.default.js +25 -25
- package/demo/2-api-register/config/config.dev.js +15 -15
- package/demo/2-api-register/config/config.prod.js +15 -15
- package/demo/2-api-register/config/config.test.js +15 -15
- package/demo/2-api-register/config/index.js +32 -32
- package/demo/2-api-register/model/api/demo.js +26 -26
- package/demo/2-api-register/model/api/dir/demo.js +27 -27
- package/demo/2-api-register/model/api/redirect.js +30 -30
- package/demo/2-api-register/model/api/use-limit.js +45 -45
- package/demo/2-api-register/package.json +11 -11
- package/demo/2-api-register/router/demo.js +9 -9
- package/demo/2-api-register/router/dir/demo.js +9 -9
- package/demo/2-api-register/router/redirect.js +8 -8
- package/demo/2-api-register/router/use-limit.js +9 -9
- package/demo/3-full-module/README.md +1 -1
- package/demo/3-full-module/config/config.default.js +33 -33
- package/demo/3-full-module/config/config.dev.js +15 -15
- package/demo/3-full-module/config/config.prod.js +15 -15
- package/demo/3-full-module/config/config.test.js +15 -15
- package/demo/3-full-module/config/index.js +32 -32
- package/demo/3-full-module/index.js +36 -36
- package/demo/3-full-module/model/api/demo.js +26 -26
- package/demo/3-full-module/model/api/dir/demo.js +26 -26
- package/demo/3-full-module/model/api/use-rabbitmq.js +26 -26
- package/demo/3-full-module/model/api/use-redis.js +33 -33
- package/demo/3-full-module/package.json +17 -17
- package/demo/3-full-module/rabbit-consumer.js +45 -45
- package/demo/3-full-module/router/demo.js +9 -9
- package/demo/3-full-module/router/dir/demo.js +9 -9
- package/demo/3-full-module/router/use-redis.js +14 -14
- package/demo/4-api-to-file/README.md +8 -8
- package/demo/4-api-to-file/config/config.default.js +8 -8
- package/demo/4-api-to-file/config/index.js +32 -32
- package/demo/4-api-to-file/index.js +6 -6
- package/demo/4-api-to-file/model/api/api.js +142 -142
- package/demo/4-api-to-file/package.json +14 -14
- package/demo/4-api-to-file/router/api.js +37 -37
- package/demo/5-mock-api/README.md +2 -2
- package/demo/5-mock-api/config/config.default.js +8 -8
- package/demo/5-mock-api/config/index.js +32 -32
- package/demo/5-mock-api/index.js +24 -24
- package/demo/5-mock-api/model/api/mock.js +213 -213
- package/demo/5-mock-api/model/mock.js +27 -27
- package/demo/5-mock-api/package.json +15 -15
- package/demo/5-mock-api/router/mock.js +20 -20
- package/demo/6-sql-test/README.md +1 -1
- package/demo/6-sql-test/config/config.default.js +61 -61
- package/demo/6-sql-test/config/config.dev.js +15 -15
- package/demo/6-sql-test/config/config.prod.js +15 -15
- package/demo/6-sql-test/config/config.test.js +15 -15
- package/demo/6-sql-test/config/index.js +32 -32
- package/demo/6-sql-test/index.js +48 -48
- package/demo/6-sql-test/model/api/dir/dir/dir/four.js +18 -18
- package/demo/6-sql-test/model/api/dir/dir/three.js +26 -26
- package/demo/6-sql-test/model/api/dir/two.js +26 -26
- package/demo/6-sql-test/model/api/one.js +18 -18
- package/demo/6-sql-test/package.json +18 -18
- package/demo/6-sql-test/router/test.js +38 -38
- package/demo/6-sql-test/service/test.js +96 -96
- package/demo/7-token/README.md +1 -1
- package/demo/7-token/config/config.default.js +35 -35
- package/demo/7-token/config/config.dev.js +15 -15
- package/demo/7-token/config/config.prod.js +15 -15
- package/demo/7-token/config/config.test.js +15 -15
- package/demo/7-token/config/index.js +32 -32
- package/demo/7-token/model/api/demo.js +43 -43
- package/demo/7-token/package.json +17 -17
- package/demo/8-test/README.md +1 -1
- package/demo/8-test/config/config.default.js +35 -35
- package/demo/8-test/config/config.dev.js +15 -15
- package/demo/8-test/config/config.prod.js +15 -15
- package/demo/8-test/config/config.test.js +15 -15
- package/demo/8-test/config/index.js +32 -32
- package/demo/8-test/index.js +30 -30
- package/demo/8-test/model/api/demo.js +43 -43
- package/demo/8-test/model/api/dir/two.js +26 -26
- package/demo/8-test/model/api/mock.js +157 -157
- package/demo/8-test/model/api/one.js +150 -150
- package/demo/8-test/model/mock.js +35 -35
- package/demo/8-test/package.json +17 -17
- package/demo/8-test/router/demo.js +45 -45
- package/demo/8-test/router/mock.js +20 -20
- package/demo/8-test/router/test.js +43 -43
- package/demo/8-test/service/test.js +35 -35
- package/demo/9-mysql-chart/config/config.dev.js +15 -15
- package/demo/9-mysql-chart/config/config.prod.js +15 -15
- package/demo/9-mysql-chart/config/config.test.js +15 -15
- package/demo/9-mysql-chart/index.js +36 -36
- package/demo/9-mysql-chart/package.json +18 -18
- package/lib/middleware/sky-api-register.js +348 -348
- package/lib/middleware/sky-cors.js +8 -8
- package/lib/middleware/sky-output.js +83 -83
- package/lib/middleware/sky-static-server.js +16 -16
- package/outFiles.js +325 -325
- package/package.json +50 -67
- package/sky-module/create_amqplib.js +69 -69
- package/sky-module/create_ioredis.js +47 -47
- package/sky-module/create_kafka.js +24 -24
- package/skyconfig.js +2 -1
- package/tests/test.js +173 -173
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
mysql: {
|
|
3
|
-
host: '127.0.0.1',
|
|
4
|
-
port: 3306,
|
|
5
|
-
user: 'root',
|
|
6
|
-
password: '123456',
|
|
7
|
-
database: 'test',
|
|
8
|
-
pool: 1000,
|
|
9
|
-
timeout: 60000,
|
|
10
|
-
charset: 'utf8mb4',
|
|
11
|
-
multipleStatements: true,
|
|
12
|
-
connectionLimit: 1000,
|
|
13
|
-
showSql: true // 使用BaseModel的才有效,打印sql
|
|
14
|
-
}
|
|
15
|
-
}
|
|
1
|
+
module.exports = {
|
|
2
|
+
mysql: {
|
|
3
|
+
host: '127.0.0.1',
|
|
4
|
+
port: 3306,
|
|
5
|
+
user: 'root',
|
|
6
|
+
password: '123456',
|
|
7
|
+
database: 'test',
|
|
8
|
+
pool: 1000,
|
|
9
|
+
timeout: 60000,
|
|
10
|
+
charset: 'utf8mb4',
|
|
11
|
+
multipleStatements: true,
|
|
12
|
+
connectionLimit: 1000,
|
|
13
|
+
showSql: true // 使用BaseModel的才有效,打印sql
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
mysql: {
|
|
3
|
-
host: '127.0.0.1',
|
|
4
|
-
port: 3306,
|
|
5
|
-
user: 'root',
|
|
6
|
-
password: '123456',
|
|
7
|
-
database: 'test',
|
|
8
|
-
pool: 1000,
|
|
9
|
-
timeout: 60000,
|
|
10
|
-
charset: 'utf8mb4',
|
|
11
|
-
multipleStatements: true,
|
|
12
|
-
connectionLimit: 1000,
|
|
13
|
-
showSql: true // 使用BaseModel的才有效,打印sql
|
|
14
|
-
}
|
|
15
|
-
}
|
|
1
|
+
module.exports = {
|
|
2
|
+
mysql: {
|
|
3
|
+
host: '127.0.0.1',
|
|
4
|
+
port: 3306,
|
|
5
|
+
user: 'root',
|
|
6
|
+
password: '123456',
|
|
7
|
+
database: 'test',
|
|
8
|
+
pool: 1000,
|
|
9
|
+
timeout: 60000,
|
|
10
|
+
charset: 'utf8mb4',
|
|
11
|
+
multipleStatements: true,
|
|
12
|
+
connectionLimit: 1000,
|
|
13
|
+
showSql: true // 使用BaseModel的才有效,打印sql
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
mysql: {
|
|
3
|
-
host: '127.0.0.1',
|
|
4
|
-
port: 3306,
|
|
5
|
-
user: 'root',
|
|
6
|
-
password: '123456',
|
|
7
|
-
database: 'test',
|
|
8
|
-
pool: 1000,
|
|
9
|
-
timeout: 60000,
|
|
10
|
-
charset: 'utf8mb4',
|
|
11
|
-
multipleStatements: true,
|
|
12
|
-
connectionLimit: 1000,
|
|
13
|
-
showSql: true // 使用BaseModel的才有效,打印sql
|
|
14
|
-
}
|
|
15
|
-
}
|
|
1
|
+
module.exports = {
|
|
2
|
+
mysql: {
|
|
3
|
+
host: '127.0.0.1',
|
|
4
|
+
port: 3306,
|
|
5
|
+
user: 'root',
|
|
6
|
+
password: '123456',
|
|
7
|
+
database: 'test',
|
|
8
|
+
pool: 1000,
|
|
9
|
+
timeout: 60000,
|
|
10
|
+
charset: 'utf8mb4',
|
|
11
|
+
multipleStatements: true,
|
|
12
|
+
connectionLimit: 1000,
|
|
13
|
+
showSql: true // 使用BaseModel的才有效,打印sql
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
let $ = require('meeko')
|
|
3
|
-
const envMap = {
|
|
4
|
-
dev: 'dev',
|
|
5
|
-
development: 'dev',
|
|
6
|
-
test: 'test',
|
|
7
|
-
'local-test': 'local-test',
|
|
8
|
-
checkout: 'checkout', // 是另一个测试环境,当时运维没命好名
|
|
9
|
-
local: 'local',
|
|
10
|
-
production: 'prod',
|
|
11
|
-
prod: 'prod'
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
let env = process.env.NODE_ENV
|
|
15
|
-
|
|
16
|
-
// 有这个之后,启动时 node .\index.js local 即可指定环境
|
|
17
|
-
if (!env && process.argv[2]) {
|
|
18
|
-
env = process.argv[2]
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
env = envMap[env] || 'local'
|
|
22
|
-
const defConfig = require('./config.default')
|
|
23
|
-
|
|
24
|
-
let config = {}
|
|
25
|
-
try {
|
|
26
|
-
config = require('./config.' + env)
|
|
27
|
-
} catch (e) {
|
|
28
|
-
console.log('\x1b[2;31m' + `【普通错误】${env}配置文件缺失,将使用default配置` + '\x1b[m')
|
|
29
|
-
}
|
|
30
|
-
$.option.logTime = 0
|
|
31
|
-
$.log(`=======================\n NODE_ENV:${$.c.g(` ${env} `)} \n=======================`)
|
|
32
|
-
module.exports = { ...defConfig, ...config }
|
|
1
|
+
'use strict'
|
|
2
|
+
let $ = require('meeko')
|
|
3
|
+
const envMap = {
|
|
4
|
+
dev: 'dev',
|
|
5
|
+
development: 'dev',
|
|
6
|
+
test: 'test',
|
|
7
|
+
'local-test': 'local-test',
|
|
8
|
+
checkout: 'checkout', // 是另一个测试环境,当时运维没命好名
|
|
9
|
+
local: 'local',
|
|
10
|
+
production: 'prod',
|
|
11
|
+
prod: 'prod'
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
let env = process.env.NODE_ENV
|
|
15
|
+
|
|
16
|
+
// 有这个之后,启动时 node .\index.js local 即可指定环境
|
|
17
|
+
if (!env && process.argv[2]) {
|
|
18
|
+
env = process.argv[2]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
env = envMap[env] || 'local'
|
|
22
|
+
const defConfig = require('./config.default')
|
|
23
|
+
|
|
24
|
+
let config = {}
|
|
25
|
+
try {
|
|
26
|
+
config = require('./config.' + env)
|
|
27
|
+
} catch (e) {
|
|
28
|
+
console.log('\x1b[2;31m' + `【普通错误】${env}配置文件缺失,将使用default配置` + '\x1b[m')
|
|
29
|
+
}
|
|
30
|
+
$.option.logTime = 0
|
|
31
|
+
$.log(`=======================\n NODE_ENV:${$.c.g(` ${env} `)} \n=======================`)
|
|
32
|
+
module.exports = { ...defConfig, ...config }
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
const sky = require('../../index')
|
|
2
|
-
const config = require('./config')
|
|
3
|
-
const $ = require('meeko')
|
|
4
|
-
|
|
5
|
-
const createIoredis = require('../../sky-module/create_ioredis')
|
|
6
|
-
const createRbmq = require('../../sky-module/create_amqplib')
|
|
7
|
-
|
|
8
|
-
async function waitNotEmpty (o, prop, fn) {
|
|
9
|
-
fn = fn || function () {}
|
|
10
|
-
if (!o[prop]) {
|
|
11
|
-
fn(o, prop)
|
|
12
|
-
await $.wait(100)
|
|
13
|
-
await waitNotEmpty(o, prop, fn)
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
config.beforeMount = async () => {
|
|
18
|
-
// 连接mysql
|
|
19
|
-
const db = require('j2sql')(config.mysql)
|
|
20
|
-
await waitNotEmpty(db, '_mysql')
|
|
21
|
-
global.db = db
|
|
22
|
-
|
|
23
|
-
// 连接redis
|
|
24
|
-
const redis = createIoredis(config.redis)
|
|
25
|
-
await redis.waitForConnected()
|
|
26
|
-
global.redis = redis
|
|
27
|
-
|
|
28
|
-
// 连接mq
|
|
29
|
-
global.MQ = await createRbmq(config.rabbitMQ, (mq) => {
|
|
30
|
-
global.MQ = mq
|
|
31
|
-
})
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
sky.start(config, async () => {
|
|
35
|
-
console.log('项目成功启动')
|
|
36
|
-
})
|
|
1
|
+
const sky = require('../../index')
|
|
2
|
+
const config = require('./config')
|
|
3
|
+
const $ = require('meeko')
|
|
4
|
+
|
|
5
|
+
const createIoredis = require('../../sky-module/create_ioredis')
|
|
6
|
+
const createRbmq = require('../../sky-module/create_amqplib')
|
|
7
|
+
|
|
8
|
+
async function waitNotEmpty (o, prop, fn) {
|
|
9
|
+
fn = fn || function () {}
|
|
10
|
+
if (!o[prop]) {
|
|
11
|
+
fn(o, prop)
|
|
12
|
+
await $.wait(100)
|
|
13
|
+
await waitNotEmpty(o, prop, fn)
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
config.beforeMount = async () => {
|
|
18
|
+
// 连接mysql
|
|
19
|
+
const db = require('j2sql')(config.mysql)
|
|
20
|
+
await waitNotEmpty(db, '_mysql')
|
|
21
|
+
global.db = db
|
|
22
|
+
|
|
23
|
+
// 连接redis
|
|
24
|
+
const redis = createIoredis(config.redis)
|
|
25
|
+
await redis.waitForConnected()
|
|
26
|
+
global.redis = redis
|
|
27
|
+
|
|
28
|
+
// 连接mq
|
|
29
|
+
global.MQ = await createRbmq(config.rabbitMQ, (mq) => {
|
|
30
|
+
global.MQ = mq
|
|
31
|
+
})
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
sky.start(config, async () => {
|
|
35
|
+
console.log('项目成功启动')
|
|
36
|
+
})
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
__swagger__: {
|
|
3
|
-
name: 'demo接口',
|
|
4
|
-
description: '用于展示如何定义一个接口'
|
|
5
|
-
},
|
|
6
|
-
'/demo/api1': {
|
|
7
|
-
name: 'demo接口1',
|
|
8
|
-
desc: 'demo接口1',
|
|
9
|
-
method: 'get',
|
|
10
|
-
controller: 'demo.api1',
|
|
11
|
-
param: {
|
|
12
|
-
name: {
|
|
13
|
-
name: '你的名字',
|
|
14
|
-
desc: '该接口将原封返回',
|
|
15
|
-
req: 1,
|
|
16
|
-
def: null,
|
|
17
|
-
type: 'string'
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
'token': false,
|
|
21
|
-
'needSign': false,
|
|
22
|
-
'err_code': {},
|
|
23
|
-
'test': {},
|
|
24
|
-
'front': true
|
|
25
|
-
}
|
|
26
|
-
}
|
|
1
|
+
module.exports = {
|
|
2
|
+
__swagger__: {
|
|
3
|
+
name: 'demo接口',
|
|
4
|
+
description: '用于展示如何定义一个接口'
|
|
5
|
+
},
|
|
6
|
+
'/demo/api1': {
|
|
7
|
+
name: 'demo接口1',
|
|
8
|
+
desc: 'demo接口1',
|
|
9
|
+
method: 'get',
|
|
10
|
+
controller: 'demo.api1',
|
|
11
|
+
param: {
|
|
12
|
+
name: {
|
|
13
|
+
name: '你的名字',
|
|
14
|
+
desc: '该接口将原封返回',
|
|
15
|
+
req: 1,
|
|
16
|
+
def: null,
|
|
17
|
+
type: 'string'
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
'token': false,
|
|
21
|
+
'needSign': false,
|
|
22
|
+
'err_code': {},
|
|
23
|
+
'test': {},
|
|
24
|
+
'front': true
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
__swagger__: {
|
|
3
|
-
name: 'demo接口',
|
|
4
|
-
description: '用于展示如何定义一个接口'
|
|
5
|
-
},
|
|
6
|
-
'api1': {
|
|
7
|
-
name: 'demo接口1',
|
|
8
|
-
desc: 'demo接口1',
|
|
9
|
-
method: 'get',
|
|
10
|
-
controller: 'dir/demo.api1',
|
|
11
|
-
param: {
|
|
12
|
-
name: {
|
|
13
|
-
name: '你的名字',
|
|
14
|
-
desc: '该接口将原封返回',
|
|
15
|
-
req: 1,
|
|
16
|
-
def: null,
|
|
17
|
-
type: 'string'
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
'token': false,
|
|
21
|
-
'needSign': false,
|
|
22
|
-
'err_code': {},
|
|
23
|
-
'test': {},
|
|
24
|
-
'front': true
|
|
25
|
-
}
|
|
26
|
-
}
|
|
1
|
+
module.exports = {
|
|
2
|
+
__swagger__: {
|
|
3
|
+
name: 'demo接口',
|
|
4
|
+
description: '用于展示如何定义一个接口'
|
|
5
|
+
},
|
|
6
|
+
'api1': {
|
|
7
|
+
name: 'demo接口1',
|
|
8
|
+
desc: 'demo接口1',
|
|
9
|
+
method: 'get',
|
|
10
|
+
controller: 'dir/demo.api1',
|
|
11
|
+
param: {
|
|
12
|
+
name: {
|
|
13
|
+
name: '你的名字',
|
|
14
|
+
desc: '该接口将原封返回',
|
|
15
|
+
req: 1,
|
|
16
|
+
def: null,
|
|
17
|
+
type: 'string'
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
'token': false,
|
|
21
|
+
'needSign': false,
|
|
22
|
+
'err_code': {},
|
|
23
|
+
'test': {},
|
|
24
|
+
'front': true
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
__swagger__: {
|
|
3
|
-
name: '使用rabbitmq',
|
|
4
|
-
description: '用于展示如何使用rabbitmq'
|
|
5
|
-
},
|
|
6
|
-
'api1': {
|
|
7
|
-
name: '往队列里插入数据',
|
|
8
|
-
desc: '往队列里插入数据',
|
|
9
|
-
method: 'get',
|
|
10
|
-
controller: 'use-rabbitmq.api1',
|
|
11
|
-
param: {
|
|
12
|
-
msg: {
|
|
13
|
-
name: '消息内容',
|
|
14
|
-
desc: '',
|
|
15
|
-
req: 1,
|
|
16
|
-
def: null,
|
|
17
|
-
type: 'string'
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
'token': false,
|
|
21
|
-
'needSign': false,
|
|
22
|
-
'err_code': {},
|
|
23
|
-
'test': {},
|
|
24
|
-
'front': true
|
|
25
|
-
}
|
|
26
|
-
}
|
|
1
|
+
module.exports = {
|
|
2
|
+
__swagger__: {
|
|
3
|
+
name: '使用rabbitmq',
|
|
4
|
+
description: '用于展示如何使用rabbitmq'
|
|
5
|
+
},
|
|
6
|
+
'api1': {
|
|
7
|
+
name: '往队列里插入数据',
|
|
8
|
+
desc: '往队列里插入数据',
|
|
9
|
+
method: 'get',
|
|
10
|
+
controller: 'use-rabbitmq.api1',
|
|
11
|
+
param: {
|
|
12
|
+
msg: {
|
|
13
|
+
name: '消息内容',
|
|
14
|
+
desc: '',
|
|
15
|
+
req: 1,
|
|
16
|
+
def: null,
|
|
17
|
+
type: 'string'
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
'token': false,
|
|
21
|
+
'needSign': false,
|
|
22
|
+
'err_code': {},
|
|
23
|
+
'test': {},
|
|
24
|
+
'front': true
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
__swagger__: {
|
|
3
|
-
name: '使用redis',
|
|
4
|
-
description: '用于展示如何使用redis'
|
|
5
|
-
},
|
|
6
|
-
'api1': {
|
|
7
|
-
name: '使用redis示例',
|
|
8
|
-
desc: '',
|
|
9
|
-
method: 'get',
|
|
10
|
-
controller: 'use-redis.api1',
|
|
11
|
-
param: {
|
|
12
|
-
key: {
|
|
13
|
-
name: 'key',
|
|
14
|
-
desc: '',
|
|
15
|
-
req: 1,
|
|
16
|
-
def: null,
|
|
17
|
-
type: 'string'
|
|
18
|
-
},
|
|
19
|
-
val: {
|
|
20
|
-
name: 'val',
|
|
21
|
-
desc: '',
|
|
22
|
-
req: 1,
|
|
23
|
-
def: null,
|
|
24
|
-
type: 'string'
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
'token': false,
|
|
28
|
-
'needSign': false,
|
|
29
|
-
'err_code': {},
|
|
30
|
-
'test': {},
|
|
31
|
-
'front': true
|
|
32
|
-
}
|
|
33
|
-
}
|
|
1
|
+
module.exports = {
|
|
2
|
+
__swagger__: {
|
|
3
|
+
name: '使用redis',
|
|
4
|
+
description: '用于展示如何使用redis'
|
|
5
|
+
},
|
|
6
|
+
'api1': {
|
|
7
|
+
name: '使用redis示例',
|
|
8
|
+
desc: '',
|
|
9
|
+
method: 'get',
|
|
10
|
+
controller: 'use-redis.api1',
|
|
11
|
+
param: {
|
|
12
|
+
key: {
|
|
13
|
+
name: 'key',
|
|
14
|
+
desc: '',
|
|
15
|
+
req: 1,
|
|
16
|
+
def: null,
|
|
17
|
+
type: 'string'
|
|
18
|
+
},
|
|
19
|
+
val: {
|
|
20
|
+
name: 'val',
|
|
21
|
+
desc: '',
|
|
22
|
+
req: 1,
|
|
23
|
+
def: null,
|
|
24
|
+
type: 'string'
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
'token': false,
|
|
28
|
+
'needSign': false,
|
|
29
|
+
'err_code': {},
|
|
30
|
+
'test': {},
|
|
31
|
+
'front': true
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "3-full-module",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "含所有模块的应用",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
8
|
-
},
|
|
9
|
-
"author": "",
|
|
10
|
-
"license": "ISC",
|
|
11
|
-
"dependencies": {
|
|
12
|
-
"j2sql": "^1.9.21",
|
|
13
|
-
"amqplib": "^0.5.3",
|
|
14
|
-
"ioredis": "^4.9.5",
|
|
15
|
-
"meeko": "^1.7.50"
|
|
16
|
-
}
|
|
17
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "3-full-module",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "含所有模块的应用",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
8
|
+
},
|
|
9
|
+
"author": "",
|
|
10
|
+
"license": "ISC",
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"j2sql": "^1.9.21",
|
|
13
|
+
"amqplib": "^0.5.3",
|
|
14
|
+
"ioredis": "^4.9.5",
|
|
15
|
+
"meeko": "^1.7.50"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 队列消费者
|
|
3
|
-
*
|
|
4
|
-
* 启动方式: node ./demo/3-full-module/rabbit-consumer.js
|
|
5
|
-
* */
|
|
6
|
-
|
|
7
|
-
'use strict'
|
|
8
|
-
|
|
9
|
-
// 在windows上设置这个环境麻烦,所以只要是没设置的,就认为是本地环境
|
|
10
|
-
process.env.NODE_ENV = process.env.NODE_ENV || process.argv[2] || 'local'
|
|
11
|
-
|
|
12
|
-
const $ = require('meeko')
|
|
13
|
-
|
|
14
|
-
const queueName = 'test'
|
|
15
|
-
|
|
16
|
-
const config = require('./config')
|
|
17
|
-
const createRbmq = require('../../sky-module/create_amqplib')
|
|
18
|
-
let MQ
|
|
19
|
-
|
|
20
|
-
async function before () {
|
|
21
|
-
MQ = await createRbmq(config.rabbitMQ, (mq) => {
|
|
22
|
-
MQ = mq
|
|
23
|
-
start().then()
|
|
24
|
-
})
|
|
25
|
-
console.log('mq加载完成')
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
async function start () {
|
|
29
|
-
const ch = await MQ.createChannel()
|
|
30
|
-
await ch.assertQueue(queueName, {})
|
|
31
|
-
await ch.consume(queueName, async function (msg) {
|
|
32
|
-
const data = msg.content.toString()
|
|
33
|
-
console.log('data receive:', data)
|
|
34
|
-
}, {
|
|
35
|
-
// 这个设为false,则处理完之后必须使用 ch.ack(msg)
|
|
36
|
-
noAck: true
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
$.log(`listening queue: ${queueName}`)
|
|
40
|
-
}
|
|
41
|
-
|
|
1
|
+
/**
|
|
2
|
+
* 队列消费者
|
|
3
|
+
*
|
|
4
|
+
* 启动方式: node ./demo/3-full-module/rabbit-consumer.js
|
|
5
|
+
* */
|
|
6
|
+
|
|
7
|
+
'use strict'
|
|
8
|
+
|
|
9
|
+
// 在windows上设置这个环境麻烦,所以只要是没设置的,就认为是本地环境
|
|
10
|
+
process.env.NODE_ENV = process.env.NODE_ENV || process.argv[2] || 'local'
|
|
11
|
+
|
|
12
|
+
const $ = require('meeko')
|
|
13
|
+
|
|
14
|
+
const queueName = 'test'
|
|
15
|
+
|
|
16
|
+
const config = require('./config')
|
|
17
|
+
const createRbmq = require('../../sky-module/create_amqplib')
|
|
18
|
+
let MQ
|
|
19
|
+
|
|
20
|
+
async function before () {
|
|
21
|
+
MQ = await createRbmq(config.rabbitMQ, (mq) => {
|
|
22
|
+
MQ = mq
|
|
23
|
+
start().then()
|
|
24
|
+
})
|
|
25
|
+
console.log('mq加载完成')
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async function start () {
|
|
29
|
+
const ch = await MQ.createChannel()
|
|
30
|
+
await ch.assertQueue(queueName, {})
|
|
31
|
+
await ch.consume(queueName, async function (msg) {
|
|
32
|
+
const data = msg.content.toString()
|
|
33
|
+
console.log('data receive:', data)
|
|
34
|
+
}, {
|
|
35
|
+
// 这个设为false,则处理完之后必须使用 ch.ack(msg)
|
|
36
|
+
noAck: true
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
$.log(`listening queue: ${queueName}`)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
42
|
before().then(start)
|
|
43
|
-
['catch'](async (err) => {
|
|
44
|
-
console.error('致命错误', err.stack)
|
|
45
|
-
process.exit(1)
|
|
46
|
-
})
|
|
43
|
+
['catch'](async (err) => {
|
|
44
|
+
console.error('致命错误', err.stack)
|
|
45
|
+
process.exit(1)
|
|
46
|
+
})
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
async api1 (ctx) {
|
|
3
|
-
const { name } = ctx.checkedData.data
|
|
4
|
-
ctx.throwCode(200, '成功', {
|
|
5
|
-
path: 'demo',
|
|
6
|
-
name: name
|
|
7
|
-
})
|
|
8
|
-
}
|
|
9
|
-
}
|
|
1
|
+
module.exports = {
|
|
2
|
+
async api1 (ctx) {
|
|
3
|
+
const { name } = ctx.checkedData.data
|
|
4
|
+
ctx.throwCode(200, '成功', {
|
|
5
|
+
path: 'demo',
|
|
6
|
+
name: name
|
|
7
|
+
})
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
async api1 (ctx) {
|
|
3
|
-
const { name } = ctx.checkedData.data
|
|
4
|
-
ctx.throwCode(200, '成功', {
|
|
5
|
-
path: 'dir/demo',
|
|
6
|
-
name: name
|
|
7
|
-
})
|
|
8
|
-
}
|
|
9
|
-
}
|
|
1
|
+
module.exports = {
|
|
2
|
+
async api1 (ctx) {
|
|
3
|
+
const { name } = ctx.checkedData.data
|
|
4
|
+
ctx.throwCode(200, '成功', {
|
|
5
|
+
path: 'dir/demo',
|
|
6
|
+
name: name
|
|
7
|
+
})
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
async api1 (ctx) {
|
|
3
|
-
const {key, val} = ctx.checkedData.data
|
|
4
|
-
|
|
5
|
-
await global.redis.setex(key, 1, val)
|
|
6
|
-
const v = await global.redis.get(key)
|
|
7
|
-
|
|
8
|
-
if (v === val) {
|
|
9
|
-
ctx.ok()
|
|
10
|
-
} else {
|
|
11
|
-
ctx.throwCode(0, '失败')
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}
|
|
1
|
+
module.exports = {
|
|
2
|
+
async api1 (ctx) {
|
|
3
|
+
const {key, val} = ctx.checkedData.data
|
|
4
|
+
|
|
5
|
+
await global.redis.setex(key, 1, val)
|
|
6
|
+
const v = await global.redis.get(key)
|
|
7
|
+
|
|
8
|
+
if (v === val) {
|
|
9
|
+
ctx.ok()
|
|
10
|
+
} else {
|
|
11
|
+
ctx.throwCode(0, '失败')
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|