skybase 0.1.84 → 0.1.87
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 +30 -491
- 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/tests/test.js +173 -173
package/package.json
CHANGED
|
@@ -1,67 +1,50 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "skybase",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "sky框架",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"directories": {
|
|
7
|
-
"test": "tests"
|
|
8
|
-
},
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "https://github.com/kongnet/skybase.git"
|
|
12
|
-
},
|
|
13
|
-
"scripts": {
|
|
14
|
-
"cz": "conventional-changelog -p atom -i CHANGELOG.md -s -r 0 && git add . && git status && git cz",
|
|
15
|
-
"push": "npm version patch && npm publish . && git push",
|
|
16
|
-
"test": "nyc --reporter=html mocha ./tests/*.js",
|
|
17
|
-
"demo1": "nodemon demo/1-simple/index.js",
|
|
18
|
-
"demo2": "nodemon demo/2-api-register/index.js",
|
|
19
|
-
"demo3": "nodemon demo/3-full-module/index.js",
|
|
20
|
-
"demo4": "nodemon demo/4-api-to-file/index.js",
|
|
21
|
-
"demo5": "nodemon demo/5-mock-api/index.js",
|
|
22
|
-
"demo6": "nodemon demo/6-sql-test/index.js",
|
|
23
|
-
"demo7": "nodemon demo/7-token/index.js",
|
|
24
|
-
"demo8": "nodemon demo/8-test/index.js",
|
|
25
|
-
"demo9": "nodemon demo/9-mysql-chart/index.js"
|
|
26
|
-
},
|
|
27
|
-
"author": "",
|
|
28
|
-
"license": "MIT",
|
|
29
|
-
"dependencies": {
|
|
30
|
-
"amqplib": "
|
|
31
|
-
"figlet": "^1.2
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"koa": "^2.
|
|
36
|
-
"koa-
|
|
37
|
-
"koa-
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"conventional-changelog": "^3.1.10",
|
|
52
|
-
"cz-jt": "^0.1.11",
|
|
53
|
-
"eslint": "^6.1.0",
|
|
54
|
-
"eslint-plugin-html": "^6.0.0",
|
|
55
|
-
"eslint-plugin-vue": "^5.2.3",
|
|
56
|
-
"mocha": "^6.1.4",
|
|
57
|
-
"nodemon": "^2.0.4",
|
|
58
|
-
"nyc": "^14.1.1",
|
|
59
|
-
"socket.io": "^2.3.0",
|
|
60
|
-
"standard": "^12.0.1"
|
|
61
|
-
},
|
|
62
|
-
"config": {
|
|
63
|
-
"commitizen": {
|
|
64
|
-
"path": "./node_modules/cz-jt"
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "skybase",
|
|
3
|
+
"version": "0.1.87",
|
|
4
|
+
"description": "sky框架",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"directories": {
|
|
7
|
+
"test": "tests"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/kongnet/skybase.git"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"cz": "conventional-changelog -p atom -i CHANGELOG.md -s -r 0 && git add . && git status && git cz",
|
|
15
|
+
"push": "npm version patch && npm publish . && git push",
|
|
16
|
+
"test": "nyc --reporter=html mocha ./tests/*.js",
|
|
17
|
+
"demo1": "nodemon demo/1-simple/index.js",
|
|
18
|
+
"demo2": "nodemon demo/2-api-register/index.js",
|
|
19
|
+
"demo3": "nodemon demo/3-full-module/index.js",
|
|
20
|
+
"demo4": "nodemon demo/4-api-to-file/index.js",
|
|
21
|
+
"demo5": "nodemon demo/5-mock-api/index.js",
|
|
22
|
+
"demo6": "nodemon demo/6-sql-test/index.js",
|
|
23
|
+
"demo7": "nodemon demo/7-token/index.js",
|
|
24
|
+
"demo8": "nodemon demo/8-test/index.js",
|
|
25
|
+
"demo9": "nodemon demo/9-mysql-chart/index.js"
|
|
26
|
+
},
|
|
27
|
+
"author": "9601698@qq.com",
|
|
28
|
+
"license": "MIT",
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"amqplib": "*",
|
|
31
|
+
"figlet": "^1.5.2",
|
|
32
|
+
"kafka-node": "*",
|
|
33
|
+
"koa": "^2.13.4",
|
|
34
|
+
"koa-better-body": "^3.0.4",
|
|
35
|
+
"koa-convert": "^1.2.0",
|
|
36
|
+
"koa-router": "^7.4.0",
|
|
37
|
+
"koa-static": "^5.0.0",
|
|
38
|
+
"koa2-cors": "^2.0.6",
|
|
39
|
+
"meeko": "*"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"conventional-changelog": "^3.1.10",
|
|
43
|
+
"cz-jt": "^0.1.11"
|
|
44
|
+
},
|
|
45
|
+
"config": {
|
|
46
|
+
"commitizen": {
|
|
47
|
+
"path": "./node_modules/cz-jt"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* rabbit_mq 连接器,带断开自动重连功能
|
|
3
|
-
* */
|
|
4
|
-
|
|
5
|
-
const $ = require('meeko')
|
|
6
|
-
const amqp = require('amqplib')
|
|
7
|
-
$.option.logTime = false
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* 给MQ加一些必须的监听器,包括处理重新连接的逻辑
|
|
1
|
+
/**
|
|
2
|
+
* rabbit_mq 连接器,带断开自动重连功能
|
|
11
3
|
* */
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (onReconnected) {
|
|
20
|
-
const MQ = await createAmqp(conf, onReconnected)
|
|
21
|
-
$.log($.c.g('✔'), `rabbitMQ [${$.c.y(`${conf.hostname} : ${conf.port}`)}]`)
|
|
22
|
-
onReconnected && onReconnected(MQ)
|
|
23
|
-
}
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
mq.on('error', function (e) {
|
|
27
|
-
$.err($.c.r('✘'), `-x- rabbitMQ [${$.c.y(`${conf.hostname} : ${conf.port}`)}] disconnect...`)
|
|
28
|
-
$.err(e.message)
|
|
29
|
-
})
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* 创建并连接队列
|
|
34
|
-
* @param conf 配置
|
|
35
|
-
* @param {function(ChannelModel)} onReconnected 重连成功之后执行的方法
|
|
36
|
-
* 重连之后,整个MQ实例都会换掉(amqplib就有这个坑),如果是消费者,重连之后必须重新注册,否则即使重连了,也接收不到数据了
|
|
37
|
-
*
|
|
38
|
-
* @return {Promise<ChannelModel>}
|
|
4
|
+
|
|
5
|
+
const $ = require('meeko')
|
|
6
|
+
const amqp = require('amqplib')
|
|
7
|
+
$.option.logTime = false
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* 给MQ加一些必须的监听器,包括处理重新连接的逻辑
|
|
39
11
|
* */
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
hostname: conf.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
12
|
+
|
|
13
|
+
const addListener = (mq, conf, onReconnected) => {
|
|
14
|
+
mq.on('close', async (e) => {
|
|
15
|
+
// 启动后,断开了连接
|
|
16
|
+
$.err($.c.r('✘'), `-x- rabbitMQ [${$.c.y(`${conf.hostname} : ${conf.port}`)}] close...`)
|
|
17
|
+
$.err(e.message)
|
|
18
|
+
|
|
19
|
+
if (onReconnected) {
|
|
20
|
+
const MQ = await createAmqp(conf, onReconnected)
|
|
21
|
+
$.log($.c.g('✔'), `rabbitMQ [${$.c.y(`${conf.hostname} : ${conf.port}`)}]`)
|
|
22
|
+
onReconnected && onReconnected(MQ)
|
|
23
|
+
}
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
mq.on('error', function (e) {
|
|
27
|
+
$.err($.c.r('✘'), `-x- rabbitMQ [${$.c.y(`${conf.hostname} : ${conf.port}`)}] disconnect...`)
|
|
28
|
+
$.err(e.message)
|
|
29
|
+
})
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 创建并连接队列
|
|
34
|
+
* @param conf 配置
|
|
35
|
+
* @param {function(ChannelModel)} onReconnected 重连成功之后执行的方法
|
|
36
|
+
* 重连之后,整个MQ实例都会换掉(amqplib就有这个坑),如果是消费者,重连之后必须重新注册,否则即使重连了,也接收不到数据了
|
|
37
|
+
*
|
|
38
|
+
* @return {Promise<ChannelModel>}
|
|
39
|
+
* */
|
|
40
|
+
|
|
41
|
+
const createAmqp = async (conf, onReconnected) => {
|
|
42
|
+
const option = {
|
|
43
|
+
protocol: conf.protocol,
|
|
44
|
+
hostname: conf.host,
|
|
45
|
+
port: conf.port,
|
|
46
|
+
username: conf.login,
|
|
47
|
+
password: conf.password,
|
|
48
|
+
locale: 'en_US',
|
|
49
|
+
frameMax: 0,
|
|
50
|
+
heartbeat: 7,
|
|
51
|
+
vhost: conf.vhost,
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
let err = false
|
|
55
|
+
do {
|
|
56
|
+
try {
|
|
57
|
+
const MQ = await amqp.connect(option)
|
|
58
|
+
addListener(MQ, option, onReconnected)
|
|
59
|
+
$.log($.c.g('✔'), `rabbitMQ [${$.c.y(`${option.hostname} : ${option.port}`)}]`)
|
|
60
|
+
return MQ
|
|
61
|
+
} catch (e) {
|
|
62
|
+
$.err($.c.r('✘'), `-x- rabbitMQ [${$.c.y(`${option.hostname} : ${option.port}`)}] connected fail...`)
|
|
63
|
+
$.err(e.stack)
|
|
64
|
+
err = true
|
|
65
|
+
await $.wait(2000)
|
|
66
|
+
}
|
|
67
|
+
} while (err)
|
|
68
|
+
return false
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
module.exports = createAmqp
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
/* global $ */
|
|
2
|
-
const Redis = require('ioredis')
|
|
3
|
-
$.option.logTime = false
|
|
4
|
-
const connect = function (rd) {
|
|
5
|
-
let hadConnected = false
|
|
6
|
-
let connected
|
|
7
|
-
|
|
8
|
-
// ioredis 的 auth 叫 password
|
|
9
|
-
rd.password = rd.auth
|
|
10
|
-
|
|
11
|
-
const redis = new Redis(rd)
|
|
12
|
-
|
|
13
|
-
// ioredis 自动重连出错时:
|
|
14
|
-
redis.reconnectOnError = function (err) {
|
|
15
|
-
redis.connStatus = { stat: 0 }
|
|
16
|
-
$.err($.c.r('✘'), `-x- Redis [${$.c.y(`${rd.host} : ${rd.port}`)}] disconnect...`)
|
|
17
|
-
$.err('redis连接失败原因:', err.code, err.message)
|
|
18
|
-
return false // 返回true或1才会重新启动
|
|
19
|
-
}
|
|
20
|
-
redis.on('connect', function () {
|
|
21
|
-
redis.connStatus = { stat: 1 }
|
|
22
|
-
redis.dbsize().then(function (_r) {
|
|
23
|
-
_r = _r || 0
|
|
24
|
-
$.log($.c.g('✔'), `Redis [${$.c.y(`${rd.host} : ${rd.port}`)}] db ${$.c.y(rd.db)} [${$.c.y(_r)}] Objects`)
|
|
25
|
-
|
|
26
|
-
hadConnected = true
|
|
27
|
-
connected && connected()
|
|
28
|
-
})
|
|
29
|
-
})
|
|
30
|
-
redis.on('error', function (e) {
|
|
31
|
-
$.err($.c.r('✘'), `-x- Redis [${$.c.y(`${rd.host} : ${rd.port}`)}] ${e.toString()}`)
|
|
32
|
-
})
|
|
33
|
-
|
|
34
|
-
redis.waitForConnected = () => new class {
|
|
35
|
-
then (fn) {
|
|
36
|
-
if (hadConnected) {
|
|
37
|
-
fn()
|
|
38
|
-
} else {
|
|
39
|
-
connected = fn
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}()
|
|
43
|
-
|
|
44
|
-
return redis
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
module.exports = connect
|
|
1
|
+
/* global $ */
|
|
2
|
+
const Redis = require('ioredis')
|
|
3
|
+
$.option.logTime = false
|
|
4
|
+
const connect = function (rd) {
|
|
5
|
+
let hadConnected = false
|
|
6
|
+
let connected
|
|
7
|
+
|
|
8
|
+
// ioredis 的 auth 叫 password
|
|
9
|
+
rd.password = rd.auth
|
|
10
|
+
|
|
11
|
+
const redis = new Redis(rd)
|
|
12
|
+
|
|
13
|
+
// ioredis 自动重连出错时:
|
|
14
|
+
redis.reconnectOnError = function (err) {
|
|
15
|
+
redis.connStatus = { stat: 0 }
|
|
16
|
+
$.err($.c.r('✘'), `-x- Redis [${$.c.y(`${rd.host} : ${rd.port}`)}] disconnect...`)
|
|
17
|
+
$.err('redis连接失败原因:', err.code, err.message)
|
|
18
|
+
return false // 返回true或1才会重新启动
|
|
19
|
+
}
|
|
20
|
+
redis.on('connect', function () {
|
|
21
|
+
redis.connStatus = { stat: 1 }
|
|
22
|
+
redis.dbsize().then(function (_r) {
|
|
23
|
+
_r = _r || 0
|
|
24
|
+
$.log($.c.g('✔'), `Redis [${$.c.y(`${rd.host} : ${rd.port}`)}] db ${$.c.y(rd.db)} [${$.c.y(_r)}] Objects`)
|
|
25
|
+
|
|
26
|
+
hadConnected = true
|
|
27
|
+
connected && connected()
|
|
28
|
+
})
|
|
29
|
+
})
|
|
30
|
+
redis.on('error', function (e) {
|
|
31
|
+
$.err($.c.r('✘'), `-x- Redis [${$.c.y(`${rd.host} : ${rd.port}`)}] ${e.toString()}`)
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
redis.waitForConnected = () => new class {
|
|
35
|
+
then (fn) {
|
|
36
|
+
if (hadConnected) {
|
|
37
|
+
fn()
|
|
38
|
+
} else {
|
|
39
|
+
connected = fn
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}()
|
|
43
|
+
|
|
44
|
+
return redis
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
module.exports = connect
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
const $ = require('meeko')
|
|
2
|
-
const kafka = require('kafka-node')
|
|
3
|
-
const HighLevelProducer = kafka.HighLevelProducer
|
|
4
|
-
const Client = kafka.KafkaClient
|
|
5
|
-
$.option.logTime = false
|
|
6
|
-
module.exports = async (kafkaConfig) => {
|
|
7
|
-
try {
|
|
8
|
-
let client = new Client({ kafkaHost: kafkaConfig.host })
|
|
9
|
-
const producer = new HighLevelProducer(client)
|
|
10
|
-
|
|
11
|
-
producer.on('ready', function () {
|
|
12
|
-
$.log($.c.g('✔'), `Kafka [${$.c.y(kafkaConfig.host)}]`)
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
producer.on('error', function (e) {
|
|
16
|
-
$.err($.c.r('✘'), `-x- Kafka [${$.c.y(kafkaConfig.host)}] disconnect...`)
|
|
17
|
-
})
|
|
18
|
-
return producer
|
|
19
|
-
} catch (e) {
|
|
20
|
-
$.err($.c.r('✘'), `-x- Kafka [${$.c.y(kafkaConfig.host)}] disconnect...`)
|
|
21
|
-
console.error(e.stack)
|
|
22
|
-
}
|
|
23
|
-
return null
|
|
24
|
-
}
|
|
1
|
+
const $ = require('meeko')
|
|
2
|
+
const kafka = require('kafka-node')
|
|
3
|
+
const HighLevelProducer = kafka.HighLevelProducer
|
|
4
|
+
const Client = kafka.KafkaClient
|
|
5
|
+
$.option.logTime = false
|
|
6
|
+
module.exports = async (kafkaConfig) => {
|
|
7
|
+
try {
|
|
8
|
+
let client = new Client({ kafkaHost: kafkaConfig.host })
|
|
9
|
+
const producer = new HighLevelProducer(client)
|
|
10
|
+
|
|
11
|
+
producer.on('ready', function () {
|
|
12
|
+
$.log($.c.g('✔'), `Kafka [${$.c.y(kafkaConfig.host)}]`)
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
producer.on('error', function (e) {
|
|
16
|
+
$.err($.c.r('✘'), `-x- Kafka [${$.c.y(kafkaConfig.host)}] disconnect...`)
|
|
17
|
+
})
|
|
18
|
+
return producer
|
|
19
|
+
} catch (e) {
|
|
20
|
+
$.err($.c.r('✘'), `-x- Kafka [${$.c.y(kafkaConfig.host)}] disconnect...`)
|
|
21
|
+
console.error(e.stack)
|
|
22
|
+
}
|
|
23
|
+
return null
|
|
24
|
+
}
|