Ver código fonte

抽离路由,增加一个测试接口

zhusiqing 4 anos atrás
pai
commit
fd1d39cba0
4 arquivos alterados com 62 adições e 17 exclusões
  1. 5 16
      src/app.ts
  2. 36 0
      src/controllers/document.ts
  3. 3 1
      src/controllers/index.ts
  4. 18 0
      src/router.ts

+ 5 - 16
src/app.ts

@@ -1,6 +1,7 @@
 import path from 'path';
 import Koa, { Context, DefaultState } from 'koa';
-import Router from 'koa-router';
+// 路由
+import router from './router';
 // 美化控制台
 import consola from 'consola/dist/consola';
 // 解析post的body体
@@ -11,14 +12,13 @@ import helmet from 'koa-helmet';
 import koaStatic from 'koa-static';
 // 请求转发
 import koaProxy from 'koa-proxies';
-import controllers from './controllers';
 import config from './config';
 import redisMiddleware from './middlewares/redis';
 import limitMiddleware from './middlewares/limit';
 import logsMiddleware from './middlewares/logs';
 import responseMiddleware from './middlewares/response';
 import sessionMiddleware from './middlewares/session';
-import authMiddleware from './middlewares/auth';
+// import authMiddleware from './middlewares/auth';
 
 import { loggerInstance } from './utils/logger';
 
@@ -46,7 +46,7 @@ app.use(limitMiddleware());
 // session
 app.use(sessionMiddleware(app))
 // auth
-app.use(authMiddleware())
+// app.use(authMiddleware())
 // 请求转发
 app.use(koaProxy('/proxy', {
   target: 'https://demo.com',
@@ -66,18 +66,7 @@ app.on('error', (err, ctx: Context) => {
   loggerInstance(ctx).error(errMsg)
 });
 
-// api 路由
-const apiRouter = new Router<DefaultState, Context>();
-apiRouter.get('/code', controllers.code);
-apiRouter.post('/login', controllers.login);
-apiRouter.get('/logout', controllers.logout);
-apiRouter.get('/user-info', controllers.userInfo);
-// 主路由
-const router = new Router<DefaultState, Context>();
-router.get('/', controllers.home);
-// api路由以/api前缀
-router.use('/api', apiRouter.routes(), apiRouter.allowedMethods());
-
+// 注册路由
 app.use(router.routes()).use(router.allowedMethods());
 
 const port = config.port;

+ 36 - 0
src/controllers/document.ts

@@ -0,0 +1,36 @@
+import { Context } from 'koa';
+
+interface InterfacePostDocument {
+  method: string
+  title: string
+  url: string
+  requestList: InterfaceRequestList[]
+}
+interface InterfaceRequestList {
+  title: string
+  type: string
+  require: boolean
+  defaultValue?: string
+  content?: string
+}
+
+export const postDocument = (ctx: Context) => {
+  const { method, title, url, requestList = [] }: InterfacePostDocument = ctx.request.body;
+  if (!method || !title || !url) {
+    ctx.status = 400;
+    ctx.body = ctx.$response(null, '必填项参数缺失', false);
+    return
+  }
+  const errorRequestList = requestList.filter(el => (!el.title || !el.type));
+  console.log(errorRequestList);
+  if (errorRequestList.length) {
+    ctx.status = 400;
+    ctx.body = ctx.$response(null, '必填项参数缺失', false);
+    return
+  }
+  ctx.body = ctx.$response(ctx.request.body);
+};
+
+export default {
+  postDocument
+}

+ 3 - 1
src/controllers/index.ts

@@ -1,4 +1,5 @@
 import { Context } from 'koa';
+import document from './document';
 import services from '../services';
 interface sessionInterface {
   user?: string
@@ -72,5 +73,6 @@ export default {
   code,
   login,
   logout,
-  userInfo
+  userInfo,
+  document
 }

+ 18 - 0
src/router.ts

@@ -0,0 +1,18 @@
+import { Context, DefaultState } from 'koa';
+import Router from 'koa-router';
+import controllers from './controllers';
+
+// api 路由
+const apiRouter = new Router<DefaultState, Context>();
+apiRouter.get('/code', controllers.code);
+apiRouter.post('/login', controllers.login);
+apiRouter.get('/logout', controllers.logout);
+apiRouter.get('/user-info', controllers.userInfo);
+apiRouter.put('/document', controllers.document.postDocument)
+// 主路由
+const router = new Router<DefaultState, Context>();
+router.get('/', controllers.home);
+// api路由以/api前缀
+router.use('/api', apiRouter.routes(), apiRouter.allowedMethods());
+
+export default router;