diff --git a/.gitignore b/.gitignore index d856d44..6933d23 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /dist /package-lock.json /yarn.lock +/*.log \ No newline at end of file diff --git a/packages/cc-server-binding/package.json b/packages/cc-server-binding/package.json index 5d49ffb..7c5b0b1 100644 --- a/packages/cc-server-binding/package.json +++ b/packages/cc-server-binding/package.json @@ -7,7 +7,7 @@ "license": "ISC", "main": "dist/index.js", "publishConfig": { - "registry": "https://repo.yumc.pw/repository/npm/" + "registry": "https://repo.yumc.pw/repository/npm-hosted/" }, "repository": { "type": "git", diff --git a/packages/cc-server-core/package.json b/packages/cc-server-core/package.json index 3d72c3f..2ca9e8e 100644 --- a/packages/cc-server-core/package.json +++ b/packages/cc-server-core/package.json @@ -10,7 +10,7 @@ "registry": "https://repo.yumc.pw/repository/npm-hosted/" }, "scripts": { - "dev": "npx ts-node-dev --respawn --prefer-ts --debounce=1500 src/index.ts", + "dev": "npx ts-node-dev --respawn --prefer-ts --debounce=1500 src/server.ts", "watch": "npx tsc --watch", "build": "rimraf dist && npx tsc", "test": "echo \"Error: run tests from root\" && exit 1" diff --git a/packages/cc-server-core/src/index.ts b/packages/cc-server-core/src/index.ts index 2faf9e2..b929113 100644 --- a/packages/cc-server-core/src/index.ts +++ b/packages/cc-server-core/src/index.ts @@ -1,33 +1,45 @@ import 'reflect-metadata'; -import { InversifyExpressServer, getRouteInfo } from 'inversify-express-utils'; +import * as express from "express"; +import { InversifyExpressServer, interfaces, getRouteInfo } from 'inversify-express-utils'; import * as bodyParser from 'body-parser'; import { rebuildServer } from 'cc-server-binding' import { container, buildProviderModule } from 'cc-server-ioc'; import * as prettyjson from "prettyjson"; -import './function/handle'; +export class CcServerBoot { + private server: InversifyExpressServer; + private serverInstance: express.Application; + constructor() { + container.load(buildProviderModule()); + // start the server + this.server = new InversifyExpressServer(container); + this.server.setConfig((app) => { + app.use(bodyParser.urlencoded({ + extended: true + })); + app.use(bodyParser.json()); + app.use(bodyParser.raw()); + }); + } -container.load(buildProviderModule()); + public setConfig(fn: interfaces.ConfigFunction) { + this.server.setConfig(fn) + } -// start the server -let server = new InversifyExpressServer(container); + public setErrorConfig(fn: interfaces.ConfigFunction) { + this.server.setErrorConfig(fn) + } -server.setConfig((app) => { - app.use(bodyParser.urlencoded({ - extended: true - })); - app.use(bodyParser.json()); - app.use(bodyParser.raw()); -}); + public build() { + this.serverInstance = this.server.build(); + rebuildServer(container); + return this.serverInstance; + } -let serverInstance = server.build(); - -rebuildServer(container); - -const routeInfo = getRouteInfo(container); - -console.log(prettyjson.render({ routes: routeInfo })); - -serverInstance.listen(80); - -console.log('Server started on port 80 :)'); + public start() { + const routeInfo = getRouteInfo(container); + console.log(prettyjson.render({ routes: routeInfo })); + this.serverInstance.listen(80); + console.log('Server started on port 80 :)'); + } +} diff --git a/packages/cc-server-core/src/server.ts b/packages/cc-server-core/src/server.ts new file mode 100644 index 0000000..7fd94ce --- /dev/null +++ b/packages/cc-server-core/src/server.ts @@ -0,0 +1,8 @@ +import { CcServerBoot } from './index' + +import './function/handle'; + +let server = new CcServerBoot(); + +server.build(); +server.start();