diff --git a/source/main.ts b/source/main.ts index 4633b3c..222b290 100644 --- a/source/main.ts +++ b/source/main.ts @@ -14,8 +14,12 @@ global.logger = logger global.loggerSite = loggerSite global.loggerSQL = loggerSQL -import { run } from "./run" - -run().then(server => { - global.server = server +import("./run").then(mod=>{ + mod.run().then(server => { + global.server = server + }).catch(err=>{ + console.error(err); + }) + }) + diff --git a/source/plugins/sequelize.ts b/source/plugins/sequelize.ts new file mode 100644 index 0000000..6042163 --- /dev/null +++ b/source/plugins/sequelize.ts @@ -0,0 +1,10 @@ +import { Sequelize } from "sequelize" +import path from "path" +import { sourceDir } from "@/util" + +export const sequelize = new Sequelize({ + dialect: "sqlite", + storage: path.resolve(sourceDir, "./db/data.db"), + // logging: false, + logging: loggerSQL.debug.bind(loggerSQL) // Alternative way to use custom logger, displays all messages +}) \ No newline at end of file diff --git a/source/run.ts b/source/run.ts index be16897..3f6ff2a 100644 --- a/source/run.ts +++ b/source/run.ts @@ -1,11 +1,12 @@ "use strict" import plugins from "@/plugins" import path from "path" -import { baseDir, templateDir } from "@/util" +import { baseDir, isDev, templateDir } from "@/util" import { validateJwt, validateSession } from "./auth" import Hapi, { Server } from "@hapi/hapi" import { Sequelize } from "sequelize" import { Req } from "#/global" +import { sequelize } from "./plugins/sequelize" // const Hapi = require("@hapi/hapi"); // const HapiSwagger = require("hapi-swagger"); // const HapiSwagger = require("hapi-swaggered-ui"); // swagger v2版本 @@ -16,6 +17,9 @@ const run = async (): Promise => { const server = Hapi.server({ port: 3388, host: "0.0.0.0", + debug: isDev ? { + request: ['error'] + } : false }) await server.register([ { @@ -25,12 +29,7 @@ const run = async (): Promise => { name: "data", // identifier models: [__dirname + "/models/**/*.ts"], // paths/globs to model files // ignoredModels: [__dirname + "/server/models/**/*.js"], // OPTIONAL: paths/globs to ignore files - sequelize: new Sequelize({ - dialect: "sqlite", - storage: path.resolve(__dirname, "./db/data.db"), - logging: false, - // logging: loggerSQL.debug.bind(loggerSQL) // Alternative way to use custom logger, displays all messages - }), // sequelize instance + sequelize: sequelize, // sequelize instance sync: true, // sync models - default false forceSync: false, // force sync (drops tables) - default false }, diff --git a/tsconfig.json b/tsconfig.json index 978fd61..547e08f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,6 +15,7 @@ "paths": { // "@noderun/hapi-router": ["packages/hapi-router/src/index.ts"], "@noderun/hapi-router": ["source/plugins/router-plugin/index.ts"], + "@sequelize": ["source/plugins/sequelize.ts"], "@/*": ["source/*"], "#/*": ["types/*"] }