From 669e7f023248c9fd3b4f1771a0015a8ba196df2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=95=8A=E5=B9=B3?= <951984189@qq.com> Date: Mon, 22 Feb 2021 19:04:26 +0800 Subject: [PATCH] 111 --- .vscode/controller.code-snippets | 31 +++++++++++++++++++++++ src/config/config.default.ts | 4 +-- src/config/config.local.ts | 2 +- src/controller/home.ts | 42 +++++++++++++++----------------- src/entity/role.ts | 14 +++++++++++ src/entity/user.ts | 4 +-- src/middleware/report1.ts | 16 ++++++++++++ 7 files changed, 86 insertions(+), 27 deletions(-) create mode 100644 .vscode/controller.code-snippets create mode 100644 src/entity/role.ts create mode 100644 src/middleware/report1.ts diff --git a/.vscode/controller.code-snippets b/.vscode/controller.code-snippets new file mode 100644 index 0000000..7fae15f --- /dev/null +++ b/.vscode/controller.code-snippets @@ -0,0 +1,31 @@ +{ + "controller": { + "prefix": "controller", + "body": [ + "import { BaseController } from 'egg-cool-controller';", + "import router from 'egg-cool-router';\n", + + "/**", + "* 控制器功能描述", + "*/", + "@router.prefix(['add', 'delete', 'update', 'info', 'list', 'page'])", + "export default class XXXController extends BaseController {", + "\tinit() {", + "\t\tthis.setEntity(this.ctx.repo.xxx);", + "\t\tthis.setService(this.ctx.service.xxx);", + "\t}\n", + + "\t/**", + "\t* 其他接口", + "\t*/", + "\t@router.post('/xxx')", + "\tasync xxx() {", + "\t\tawait this.OpService.xxx(this.getBody());", + "\t\tthis.res();", + "\t}", + "}" + ], + "description": "cool-admin controller代码片段 node后端" + } + } + \ No newline at end of file diff --git a/src/config/config.default.ts b/src/config/config.default.ts index 7b7e8d5..195f6f4 100644 --- a/src/config/config.default.ts +++ b/src/config/config.default.ts @@ -7,8 +7,8 @@ export default (appInfo: EggAppInfo) => { // cookie sign key config.keys = appInfo.name + 'cool-admin-next'; - // 中间件 - config.middleware = ['reportMiddleware']; + // 启用中间件 这里需要设置为 [] 否则CoolController设置的中间件也会无效 + config.middleware = []; // 关闭安全校验 config.security = { diff --git a/src/config/config.local.ts b/src/config/config.local.ts index f9ad0b6..2d842b9 100644 --- a/src/config/config.local.ts +++ b/src/config/config.local.ts @@ -13,7 +13,7 @@ export default (appInfo: EggAppInfo) => { password: '123123', database: 'cool-admin-next', synchronize: true, - logging: false, + logging: true, } config.logger = { diff --git a/src/controller/home.ts b/src/controller/home.ts index 70a8fb2..28a4733 100755 --- a/src/controller/home.ts +++ b/src/controller/home.ts @@ -1,28 +1,26 @@ -import { Get, Provide, Inject, Query, Body, ALL, Post, Validate } from '@midwayjs/decorator'; +import { Get, Provide, Inject, Query, Post } from '@midwayjs/decorator'; import { CoolController, CoolCache, BaseController, RESCODE } from 'midwayjs-cool-core'; -//import { InjectEntityModel } from '@midwayjs/orm'; -import { User } from '../entity/user'; -import { TestDTO } from '../dto/test'; +import { InjectEntityModel } from '@midwayjs/orm'; +import { Repository } from 'typeorm'; +import { Role } from '../entity/role'; @Provide() @CoolController({ - api: ['info', 'add'], - entity: User, - infoIgnoreProperty: ['age'] + api: ['add','delete','update','info','list','page'], + entity: 实体, + pageQueryOp: { + fieldEq: ['id', 'name'], + keyWordLikeFields: ['a.name'], + select: ['a.*, b.name AS roleName'], + leftJoin: [ + { + entity: Role, + alias: 'b', + condition: 'a.id = b.userId' + } + ] + } }) -export class HomeController extends BaseController { - @Inject('cool:cache') - coolCache: CoolCache; - - @Get('/1') - async home(@Query() data: string) { - //console.log(this.coolCache) - await this.coolCache.set('a', data); - return await this.coolCache.get('a'); - } - - @Post('/2') - async 2(@Body(ALL) test: TestDTO) { - return this.fail('哈哈', RESCODE.VALIDATEFAIL); - } +export class XxxController extends BaseController { + } diff --git a/src/entity/role.ts b/src/entity/role.ts new file mode 100644 index 0000000..d76de98 --- /dev/null +++ b/src/entity/role.ts @@ -0,0 +1,14 @@ +import { EntityModel } from '@midwayjs/orm'; +import { BaseModel } from 'midwayjs-cool-core'; +import { Column } from 'typeorm'; + +@EntityModel('role') +export class Role extends BaseModel { + + @Column() + name: string; + + @Column('bigint') + userId: number; + +} \ No newline at end of file diff --git a/src/entity/user.ts b/src/entity/user.ts index 6bbf62e..19b6077 100644 --- a/src/entity/user.ts +++ b/src/entity/user.ts @@ -6,11 +6,11 @@ import { Rule, RuleType } from "@midwayjs/decorator"; @EntityModel('user') export class User extends BaseModel { - @Rule(RuleType.number().required()) + @Rule(RuleType.string().required()) @Column() name: string; - @Rule(RuleType.number().max(60)) + @Rule(RuleType.number().max(18)) @Column('int') age: number; diff --git a/src/middleware/report1.ts b/src/middleware/report1.ts new file mode 100644 index 0000000..788d8df --- /dev/null +++ b/src/middleware/report1.ts @@ -0,0 +1,16 @@ +import { Provide } from '@midwayjs/decorator'; +import { IWebMiddleware, IMidwayWebNext, IMidwayWebContext } from '@midwayjs/web'; + +@Provide() +export class ReportMiddleware1 implements IWebMiddleware { + + resolve() { + return async (ctx: IMidwayWebContext, next: IMidwayWebNext) => { + console.log('请求进来了1111') + const startTime = Date.now(); + await next(); + console.log('请求时间1111', Date.now() - startTime); + }; + } + +} \ No newline at end of file