diff --git a/backend/package-lock.json b/backend/package-lock.json index e8ce6861d..9571ab61d 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -717,6 +717,11 @@ } } }, + "denque": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", + "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==" + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -1684,6 +1689,14 @@ "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", "dev": true }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "requires": { + "is-property": "^1.0.2" + } + }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", @@ -2064,6 +2077,11 @@ "isobject": "^3.0.1" } }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" + }, "is-redirect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", @@ -2199,6 +2217,11 @@ } } }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, "lowercase-keys": { "version": "1.0.1", "resolved": "http://192.168.250.101:4873/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -2209,7 +2232,6 @@ "version": "4.1.5", "resolved": "http://192.168.250.101:4873/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", - "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -2342,6 +2364,52 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "mysql2": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.2.5.tgz", + "integrity": "sha512-XRqPNxcZTpmFdXbJqb+/CtYVLCx14x1RTeNMD4954L331APu75IC74GDqnZMEt1kwaXy6TySo55rF2F3YJS78g==", + "requires": { + "denque": "^1.4.1", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.2", + "long": "^4.0.0", + "lru-cache": "^6.0.0", + "named-placeholders": "^1.1.2", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "named-placeholders": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", + "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", + "requires": { + "lru-cache": "^4.1.3" + } + }, "nan": { "version": "2.14.2", "resolved": "http://192.168.250.101:4873/nan/-/nan-2.14.2.tgz", @@ -2631,8 +2699,7 @@ "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "pstree.remy": { "version": "1.1.8", @@ -2848,6 +2915,11 @@ } } }, + "seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=" + }, "serve-static": { "version": "1.14.1", "resolved": "http://192.168.250.101:4873/serve-static/-/serve-static-1.14.1.tgz", @@ -3071,6 +3143,11 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, + "sqlstring": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.2.tgz", + "integrity": "sha512-vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg==" + }, "stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -3548,8 +3625,7 @@ "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "z-schema": { "version": "3.25.1", diff --git a/backend/package.json b/backend/package.json index 9a0cd1550..1375ccf8e 100644 --- a/backend/package.json +++ b/backend/package.json @@ -22,6 +22,7 @@ "dotenv": "^8.2.0", "express": "^4.17.1", "express-swagger-generator": "^1.1.17", + "mysql2": "^2.2.5", "winston": "^3.3.3" } } diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index b4fa7511a..095f5d188 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -49,9 +49,13 @@ export default { concurrency: parseInt(process.env.AGENDA_CONCURRENCY, 10), }, mysql: { - user: 'admin', - password: '123456' + host: 'localhost', + charset: 'utf8_general_ci', + user: 'root', + password: '123456789' }, + mongodb:{}, + sqlite:{}, api: { prefix: '/api', }, diff --git a/backend/src/models/mysql/index.ts b/backend/src/models/mysql/index.ts new file mode 100644 index 000000000..5ae8299ff --- /dev/null +++ b/backend/src/models/mysql/index.ts @@ -0,0 +1,6 @@ +// 创建用户表 +const user = 'CREATE TABLE if not EXISTS users(id int PRIMARY key auto_increment,account varchar(32),psw varchar(32))' + +export { + user +} \ No newline at end of file diff --git a/backend/src/server.ts b/backend/src/server.ts index fa2ca1095..8cd8ada74 100644 --- a/backend/src/server.ts +++ b/backend/src/server.ts @@ -1,10 +1,14 @@ import app from "./app"; import * as open from "open"; import config from './config'; +import { user } from "./models/mysql"; import Logger from './loaders/logger'; -const expressSwagger = require('express-swagger-generator')(app) +import { queryTable } from "./utils/initMysql"; +const expressSwagger = require('express-swagger-generator')(app); expressSwagger(config.options) +queryTable(user) + // 引入测试数据 const test = require("./router/api/test") diff --git a/backend/src/utils/initMysql.ts b/backend/src/utils/initMysql.ts new file mode 100644 index 000000000..fedf452a9 --- /dev/null +++ b/backend/src/utils/initMysql.ts @@ -0,0 +1,14 @@ +import * as mysql from "mysql2"; +import mysqlConfig from "../config"; +import Logger from "../loaders/logger"; + +//user数据库 +const connection = mysql.createConnection(Object.assign({ database: 'user' }, mysqlConfig.mysql)) + +export function queryTable(s: string):void { + connection.query(s, (err) => { + err ? Logger.error(err) : Logger.info(`${s}表创建成功`) + }) + } + + \ No newline at end of file