import { Configuration, App, Inject, MidwayDecoratorService, IMidwayContainer, IMidwayApplication } from '@midwayjs/core'; import * as koa from '@midwayjs/koa'; import * as validate from '@midwayjs/validate'; import * as info from '@midwayjs/info'; import { join } from 'path'; import * as FreeFrame from 'free-midway-component'; import * as jwt from '@midwayjs/jwt'; import { VerifyTokenInit } from './decorator/verifyToken.decorator'; import { CheckPermissionCodeInit } from './decorator/checkPermissionCode'; import * as swagger from '@midwayjs/swagger'; import * as redis from '@midwayjs/redis'; import { CheckOnePointLoginMiddleware } from './middleware/checkOnePointLogin.middleware'; import * as i18n from '@midwayjs/i18n'; import { SetLocaleToCtxMiddleware } from './middleware/setLocaleToCtx.middleware'; import { DataRecordInit } from './decorator/dataRecord'; import * as bull from '@midwayjs/bull'; import { ElasticsearchService } from './service/elasticsearch'; @Configuration({ imports: [ koa, validate, FreeFrame, jwt, redis, i18n, bull, { component: info, enabledEnvironment: ['local'], }, { component: swagger, enabledEnvironment: ['local'], }, ], importConfigs: [join(__dirname, './config')], }) export class MainConfiguration { @App('koa') app: koa.Application; @Inject() decoratorService: MidwayDecoratorService; async onReady() { this.app.getMiddleware().insertFirst(SetLocaleToCtxMiddleware) this.app.getMiddleware().insertAfter(CheckOnePointLoginMiddleware, 'checkToken'); // 注解 VerifyTokenInit(this.decoratorService); CheckPermissionCodeInit(this.decoratorService); DataRecordInit(this.decoratorService) } // 应用服务已启动后执行 async onServerReady?(container: IMidwayContainer, app: IMidwayApplication) { // 初始化es const esService = await container.getAsync(ElasticsearchService); await esService.preparMapping(); } }