From 24f291ae1cc74b02e852b188ff61eef1eb16af4b Mon Sep 17 00:00:00 2001 From: iotcat Date: Fri, 3 Apr 2020 11:04:43 +0800 Subject: [PATCH] mysql --- index.js | 36 +++++++++++++++++++++++---- package.json | 1 + yarn.lock | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index 2a70ecb..6b1f619 100644 --- a/index.js +++ b/index.js @@ -12,6 +12,9 @@ module.exports = async (o_params) => { host: "redis", port: 6379 }, + mysql: { + dbKeysDir: '/mnt/config/dbKeys' + }, debug: { format: (time, content) => { return `Ushio-env: ${tool.time.format(time)} :: ${content}`; @@ -26,6 +29,9 @@ module.exports = async (o_params) => { /* output obj */ var o = {}; + /* package import */ + const fs = require('fs'); + /* tool func */ var tool = { time: { @@ -38,7 +44,9 @@ module.exports = async (o_params) => { let s=date.getSeconds(); return year+'-'+mon+'-'+da+' '+h+':'+m+':'+s; } - } + }, + log: s => params.debug.output(params.debug.format(new Date(), s)), + } @@ -47,14 +55,32 @@ module.exports = async (o_params) => { /* redis */ var redis = require('redis').createClient(params.redis.port, params.redis.host); redis.on('error', err => { - params.debug.output(params.debug.format(new Date(), err)); + tool.log(err); }); - + /* mysql */ + var mysql = alias => new Promise((resolve, reject) => { + let m = require('mysql'); + let s = {}; + let res; + try{ + s = JSON.parse(fs.readFileSync(params.mysql.dbKeysDir + '/' + alias)); + }catch(e){ + tool.log('In mysql part, cannot read dbKeys from '+params.mysql.dbKeysDir+'/'+alias); + reject(e); + } + try{ + res = m.createConnection(s); + }catch(e){ + tool.log('In mysql part, cannot create connection.'); + reject(e); + } + resolve(res); + }); return new Promise((resolve, reject) => { - o.redis = redis; - + o.redis = redis; + o.mysql = mysql; }); } diff --git a/package.json b/package.json index b949831..1be5d85 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "author": "iotcat ", "license": "MIT", "dependencies": { + "mysql": "^2.18.1", "redis": "^3.0.2" } } diff --git a/yarn.lock b/yarn.lock index 92ab23f..c69f3b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,59 @@ # yarn lockfile v1 +bignumber.js@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" + integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A== + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + denque@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf" integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ== +inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +mysql@^2.18.1: + version "2.18.1" + resolved "https://registry.yarnpkg.com/mysql/-/mysql-2.18.1.tgz#2254143855c5a8c73825e4522baf2ea021766717" + integrity sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig== + dependencies: + bignumber.js "9.0.0" + readable-stream "2.3.7" + safe-buffer "5.1.2" + sqlstring "2.3.1" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +readable-stream@2.3.7: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + redis-commands@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.5.0.tgz#80d2e20698fe688f227127ff9e5164a7dd17e785" @@ -33,3 +81,25 @@ redis@^3.0.2: redis-commands "^1.5.0" redis-errors "^1.2.0" redis-parser "^3.0.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +sqlstring@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.1.tgz#475393ff9e91479aea62dcaf0ca3d14983a7fb40" + integrity sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=