diff --git a/back/api/dependence.ts b/back/api/dependence.ts index 26c4d15c..e64bc9bb 100644 --- a/back/api/dependence.ts +++ b/back/api/dependence.ts @@ -8,17 +8,29 @@ const route = Router(); export default (app: Router) => { app.use('/dependencies', route); - route.get('/', async (req: Request, res: Response, next: NextFunction) => { - const logger: Logger = Container.get('logger'); - try { - const dependenceService = Container.get(DependenceService); - const data = await dependenceService.dependencies(req.query as any); - return res.send({ code: 200, data }); - } catch (e) { - logger.error('🔥 error: %o', e); - return next(e); - } - }); + route.get( + '/', + celebrate({ + body: Joi.array().items( + Joi.object({ + searchValue: Joi.string().optional().allow(''), + type: Joi.string().optional().allow(''), + status: Joi.string().optional().allow(''), + }), + ), + }), + async (req: Request, res: Response, next: NextFunction) => { + const logger: Logger = Container.get('logger'); + try { + const dependenceService = Container.get(DependenceService); + const data = await dependenceService.dependencies(req.query as any); + return res.send({ code: 200, data }); + } catch (e) { + logger.error('🔥 error: %o', e); + return next(e); + } + }, + ); route.post( '/', diff --git a/back/app.ts b/back/app.ts index 8c76ffd1..2b01de26 100644 --- a/back/app.ts +++ b/back/app.ts @@ -27,6 +27,13 @@ class Application { constructor() { this.app = express(); + // 创建一个全局中间件,删除查询参数中的t + this.app.use((req: express.Request, res: express.Response, next: express.NextFunction) => { + if (req.query.t) { + delete req.query.t; + } + next(); + }); } async start() { @@ -54,8 +61,7 @@ class Application { if (metadata) { if (!this.isShuttingDown) { Logger.error( - `${metadata.serviceType} worker ${worker.process.pid} died (${ - signal || code + `${metadata.serviceType} worker ${worker.process.pid} died (${signal || code }). Restarting...`, ); const newWorker = this.forkWorker(metadata.serviceType); diff --git a/back/services/dependence.ts b/back/services/dependence.ts index 178529b6..a2ee8bf2 100644 --- a/back/services/dependence.ts +++ b/back/services/dependence.ts @@ -28,7 +28,7 @@ export default class DependenceService { constructor( @Inject('logger') private logger: winston.Logger, private sockService: SockService, - ) {} + ) { } public async create(payloads: Dependence[]): Promise { const tabs = payloads.map((x) => { @@ -98,34 +98,32 @@ export default class DependenceService { searchValue, type, status, - }: { searchValue: string; type: string; status: string }, + }: { + searchValue: string; + type: keyof typeof DependenceTypes; + status: string; + }, sort: any = [], query: any = {}, ): Promise { - let condition = { - ...query, - type: DependenceTypes[type as any], - }; + let condition = query; + if (type && ['nodejs', 'python3', 'linux'].includes(type)) { + condition.type = DependenceTypes[type]; + } else condition.type = [0, 1, 2]; if (status) { condition.status = status.split(',').map(Number); } if (searchValue) { const encodeText = encodeURI(searchValue); - const reg = { + condition.name = { [Op.or]: [ { [Op.like]: `%${searchValue}%` }, { [Op.like]: `%${encodeText}%` }, ], }; - - condition = { - ...condition, - name: reg, - }; } try { - const result = await this.find(condition, sort); - return result as any; + return await this.find(condition, sort); } catch (error) { throw error; }