Explorar o código

init:auto-chair

zhangyuting %!s(int64=5) %!d(string=hai) anos
pai
achega
ffc7be7cd2
Modificáronse 9 ficheiros con 132 adicións e 3 borrados
  1. 1 1
      README.md
  2. 16 0
      config/default.js
  3. 20 0
      config/development.js
  4. 20 0
      config/production.js
  5. 28 1
      src/index.ts
  6. 12 0
      src/router/index.ts
  7. 14 0
      src/tool/debug.ts
  8. 21 0
      tsconfig.json
  9. 0 1
      webpack.config.js

+ 1 - 1
README.md

@@ -1,5 +1,5 @@
 #### What
-> novel kanban saas
+> mini game auto ad server
 
 #### How to use?
 

+ 16 - 0
config/default.js

@@ -0,0 +1,16 @@
+module.exports = {
+  env: process.env.ENV,
+  jwt: {
+    exp: 24 * 7, // 小时
+    secret: 'f160a452e351b481021b3dcc32642315'
+  },
+  app: {
+    name: 'mini-game-auto-ad-server',
+    port: 3000,
+    version: '1.0.0',
+    env: process.env.NODE_ENV,
+    cache: {
+      prefix: 'MINI_GAME_AUTO_AD_SERVER'
+    }
+  }
+}

+ 20 - 0
config/development.js

@@ -0,0 +1,20 @@
+module.exports = {
+  env: process.env.ENV = 'development',
+  jwt: {
+    secret: 'e222bb7c9ab02d59899a25384376a1c4'
+  },
+  mongo: {
+    default: {
+      dsn: 'mongodb://127.0.0.1:27017/admin',
+      options: { authSource: 'admin', auth: { user: 'admin', password: 'YyZq6699Pi?' } }
+    }
+  },
+  redis: {
+    default: {
+      host: '127.0.0.1',
+      port: 6379,
+      password: '^*)(fasd)',
+      db: 0
+    }
+  }
+}

+ 20 - 0
config/production.js

@@ -0,0 +1,20 @@
+module.exports = {
+  env: process.env.ENV = 'production',
+  jwt: {
+    secret: '7cab0c1d2bb14fb7fa8fd33a8d9731bf'
+  },
+  mongo: {
+    default: {
+      dsn: 'mongodb://dds-uf6ba204086ef6b41655-pub.mongodb.rds.aliyuncs.com:3717/mini_game?authSource=admin&replicaSet=mgset-36593873&connectTimeoutMS=5000&maxPoolSize=256&readPreference=primary&authMechanism=SCRAM-SHA-1&serverSelectionTimeoutMS=5000&appname=MongoDB%20Compass&ssl=false',
+      options: { authSource: 'admin', auth: { user: 'admin', password: 'YyZq6699Pi?' } }
+    },
+  },
+  redis: {
+    default: {
+      host: 'r-uf62jbeox82llguetkpd.redis.rds.aliyuncs.com',
+      port: 35673,
+      password: 'SuNovel_$#567Kan',
+      db: 0
+    }
+  }
+}

+ 28 - 1
src/index.ts

@@ -1,3 +1,30 @@
 import Koa from 'koa'
-import Koa from 'koa'
+import bodyParser from 'koa-bodyparser'
+import koaJsonError from 'koa-json-error'
+import koaBody from 'koa-body'
+import cors from '@koa/cors'
+import config from 'config'
 import router from '@/router'
+import { ConsoleRouters, Debug } from '@/tool/debug'
+
+const app = new Koa()
+const port = config.get<number>('app.port')
+const appName = config.get<string>('app.name')
+const consoleRouters: ConsoleRouters[] = []
+
+app.use(koaBody())
+app.use(bodyParser())
+app.use(cors())
+app.use(router.routes()).use(router.allowedMethods())
+
+if (process.env.NODE_ENV === 'development') {
+  app.use(koaJsonError())
+  router.stack.map(i => {
+    consoleRouters.push({ path: i.path, methods: i.methods.toString() })
+  })
+  Debug.consoleRouters(consoleRouters)
+}
+
+app.listen(port)
+
+console.log(`${appName} listening-port:${port}`)

+ 12 - 0
src/router/index.ts

@@ -0,0 +1,12 @@
+import config from 'config'
+import Router from 'koa-router'
+
+const env = config.get<number>('app.env')
+const version = config.get<number>('app.version')
+
+const router = new Router()
+router.get('/', async (ctx) => {
+  ctx.body = { version, env }
+})
+
+export default router

+ 14 - 0
src/tool/debug.ts

@@ -0,0 +1,14 @@
+export interface ConsoleRouters {
+  methods:string
+  path:string
+}
+export class Debug {
+  // eslint-disable-next-line @typescript-eslint/no-empty-function
+  static consoleRouters (cr:ConsoleRouters[]):void {
+    console.log('---------------------------')
+    cr.map(i => {
+      console.log(`${i.methods}-----------${i.path}`)
+    })
+    console.log('\n')
+  }
+}

+ 21 - 0
tsconfig.json

@@ -0,0 +1,21 @@
+{
+  "compilerOptions": {
+    "baseUrl": "./",
+    "paths": {
+      "@/*": [
+        "src/*"
+      ]
+    },
+    "module": "commonjs",
+    "target": "es2017",
+    "noImplicitAny": true,
+    "outDir": "./dist",
+    "sourceMap": true,
+    "esModuleInterop": true,
+    "emitDecoratorMetadata": true,
+    "experimentalDecorators": true
+  },
+  "include": [
+    "src/**/*"
+  ]
+}

+ 0 - 1
webpack.config.js

@@ -1,5 +1,4 @@
 const path = require('path')
-const glob = require('glob')
 const nodeExternals = require('webpack-node-externals')
 const { CleanWebpackPlugin } = require('clean-webpack-plugin')