feat: serverConfiguration支持middleware配置
This commit is contained in:
parent
f0671efef6
commit
896d53561e
|
|
@ -9,7 +9,7 @@ const path_1 = require("path");
|
||||||
const koa_1 = tslib_1.__importDefault(require("koa"));
|
const koa_1 = tslib_1.__importDefault(require("koa"));
|
||||||
const koa_router_1 = tslib_1.__importDefault(require("koa-router"));
|
const koa_router_1 = tslib_1.__importDefault(require("koa-router"));
|
||||||
const koa_body_1 = tslib_1.__importDefault(require("koa-body"));
|
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 oak_backend_base_1 = require("oak-backend-base");
|
||||||
const types_1 = require("oak-domain/lib/types");
|
const types_1 = require("oak-domain/lib/types");
|
||||||
const cluster_adapter_1 = require("@socket.io/cluster-adapter");
|
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 corsMethods = ['PUT', 'POST', 'GET', 'DELETE', 'OPTIONS'];
|
||||||
const koa = new koa_1.default();
|
const koa = new koa_1.default();
|
||||||
// 使用 koa-logger 中间件打印日志
|
// 使用 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
|
// socket
|
||||||
const httpServer = (0, http_1.createServer)(koa.callback());
|
const httpServer = (0, http_1.createServer)(koa.callback());
|
||||||
const socketPath = connector.getSocketPath();
|
const socketPath = connector.getSocketPath();
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import PathLib, { join } from 'path';
|
||||||
import Koa from 'koa';
|
import Koa from 'koa';
|
||||||
import KoaRouter from 'koa-router';
|
import KoaRouter from 'koa-router';
|
||||||
import KoaBody from 'koa-body';
|
import KoaBody from 'koa-body';
|
||||||
import logger from 'koa-logger';
|
// import logger from 'koa-logger';
|
||||||
|
|
||||||
import { AppLoader, getClusterInfo, ClusterAppLoader } from 'oak-backend-base';
|
import { AppLoader, getClusterInfo, ClusterAppLoader } from 'oak-backend-base';
|
||||||
import { BackendRuntimeContext } from 'oak-frontend-base/lib/context/BackendRuntimeContext';
|
import { BackendRuntimeContext } from 'oak-frontend-base/lib/context/BackendRuntimeContext';
|
||||||
|
|
@ -88,7 +88,26 @@ export async function startup<ED extends EntityDict & BaseEntityDict, FrontCxt e
|
||||||
|
|
||||||
const koa = new Koa();
|
const koa = new Koa();
|
||||||
// 使用 koa-logger 中间件打印日志
|
// 使用 koa-logger 中间件打印日志
|
||||||
koa.use(logger());
|
// 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
|
// socket
|
||||||
const httpServer = createServer(koa.callback());
|
const httpServer = createServer(koa.callback());
|
||||||
const socketPath = connector.getSocketPath();
|
const socketPath = connector.getSocketPath();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue