From 896d53561e367e344e9e92fb0976f4cdc6cd0989 Mon Sep 17 00:00:00 2001 From: qcqcqc <1220204124@zust.edu.cn> Date: Tue, 11 Nov 2025 18:02:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20serverConfiguration=E6=94=AF=E6=8C=81mi?= =?UTF-8?q?ddleware=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/server/start.js | 21 +++++++++++++++++++-- src/server/start.ts | 23 +++++++++++++++++++++-- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/lib/server/start.js b/lib/server/start.js index 6719b22..db8553b 100644 --- a/lib/server/start.js +++ b/lib/server/start.js @@ -9,7 +9,7 @@ const path_1 = require("path"); const koa_1 = tslib_1.__importDefault(require("koa")); const koa_router_1 = tslib_1.__importDefault(require("koa-router")); const koa_body_1 = tslib_1.__importDefault(require("koa-body")); -const koa_logger_1 = tslib_1.__importDefault(require("koa-logger")); +// import logger from 'koa-logger'; const oak_backend_base_1 = require("oak-backend-base"); const types_1 = require("oak-domain/lib/types"); const cluster_adapter_1 = require("@socket.io/cluster-adapter"); @@ -63,7 +63,24 @@ async function startup(path, connector, omitWatchers, omitTimers, routine) { const corsMethods = ['PUT', 'POST', 'GET', 'DELETE', 'OPTIONS']; const koa = new koa_1.default(); // 使用 koa-logger 中间件打印日志 - koa.use((0, koa_logger_1.default)()); + // koa.use(logger()); + // 注册自定义中间件 + if (serverConfiguration.middleware) { + if (Array.isArray(serverConfiguration.middleware)) { + serverConfiguration.middleware.forEach((mw) => { + koa.use(mw); + }); + } + else if (typeof serverConfiguration.middleware === 'function') { + const mws = serverConfiguration.middleware(koa); + if (!Array.isArray(mws)) { + throw new Error('middleware 配置函数必须返回 Koa.Middleware 数组'); + } + mws.forEach((mw) => { + koa.use(mw); + }); + } + } // socket const httpServer = (0, http_1.createServer)(koa.callback()); const socketPath = connector.getSocketPath(); diff --git a/src/server/start.ts b/src/server/start.ts index b10a6b7..e9ebb97 100644 --- a/src/server/start.ts +++ b/src/server/start.ts @@ -5,7 +5,7 @@ import PathLib, { join } from 'path'; import Koa from 'koa'; import KoaRouter from 'koa-router'; import KoaBody from 'koa-body'; -import logger from 'koa-logger'; +// import logger from 'koa-logger'; import { AppLoader, getClusterInfo, ClusterAppLoader } from 'oak-backend-base'; import { BackendRuntimeContext } from 'oak-frontend-base/lib/context/BackendRuntimeContext'; @@ -88,7 +88,26 @@ export async function startup { + koa.use(mw); + }); + } + else if (typeof serverConfiguration.middleware === 'function') { + const mws = serverConfiguration.middleware(koa); + if (!Array.isArray(mws)) { + throw new Error('middleware 配置函数必须返回 Koa.Middleware 数组'); + } + mws.forEach((mw) => { + koa.use(mw); + }); + } + } + // socket const httpServer = createServer(koa.callback()); const socketPath = connector.getSocketPath();