staging环境也支持跨域

This commit is contained in:
Xu Chang 2023-12-15 17:40:55 +08:00
parent 659e66cd7f
commit fad76fa8a0
3 changed files with 17 additions and 6 deletions

View File

@ -15,6 +15,7 @@ const socket_io_1 = require("socket.io");
const cluster_adapter_1 = require("@socket.io/cluster-adapter");
const sticky_1 = require("@socket.io/sticky");
const DATA_SUBSCRIBER_NAMESPACE = '/ds';
const SERVER_SUBSCRIBER_NAMESPACE = process.env.OAK_SSUB_NAMESPACE || '/ssub';
async function startup(path, contextBuilder, connector, omitWatchers, omitTimers, routine) {
const koa = new koa_1.default();
// socket
@ -39,7 +40,9 @@ async function startup(path, contextBuilder, connector, omitWatchers, omitTimers
else {
console.log('以单实例模式启动');
}
const appLoader = clusterInfo.usingCluster ? new oak_backend_base_1.ClusterAppLoader(path, contextBuilder, io.of(DATA_SUBSCRIBER_NAMESPACE)) : new oak_backend_base_1.AppLoader(path, contextBuilder, io.of(DATA_SUBSCRIBER_NAMESPACE));
const appLoader = clusterInfo.usingCluster
? new oak_backend_base_1.ClusterAppLoader(path, contextBuilder, io.of(DATA_SUBSCRIBER_NAMESPACE), io.of(SERVER_SUBSCRIBER_NAMESPACE), connector.getSubscribeRouter())
: new oak_backend_base_1.AppLoader(path, contextBuilder);
await appLoader.mount();
await appLoader.execStartRoutines();
if (routine) {
@ -67,7 +70,7 @@ async function startup(path, contextBuilder, connector, omitWatchers, omitTimers
const router = new koa_router_1.default();
const serverConfig = require(path_1.default.join(path, '/configuration/server.json'));
// 如果是开发环境允许options
if (process.env.NODE_ENV === 'development') {
if (['development', 'staging'].includes(process.env.NODE_ENV)) {
koa.use(async (ctx, next) => {
ctx.set('Access-Control-Allow-Origin', '*');
ctx.set('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With, oak-cxt, oak-aspect');

View File

@ -5,7 +5,9 @@ function packageJsonContent({ name, version, description, cliVersion, cliName, c
let oakDependencyStr;
let oakDevDependencyStr;
if (isDev) {
oakDependencyStr = `"oak-common-aspect": "file:../oak-common-aspect",
oakDependencyStr = `
"oak-backend-base": "file:../oak-backend-base",
"oak-common-aspect": "file:../oak-common-aspect",
"oak-db": "file:../oak-db",
"oak-domain": "file:../oak-domain",
"oak-external-sdk": "file:../oak-external-sdk",
@ -16,7 +18,9 @@ function packageJsonContent({ name, version, description, cliVersion, cliName, c
}
else {
// todo这里从npmjs.org上获取最新版本
oakDependencyStr = `"oak-common-aspect": "^2.1.0",
oakDependencyStr = `
"oak-backend-base": "^3.2.0",
"oak-common-aspect": "^2.1.0",
"oak-db": "^2.1.1",
"oak-domain": "^2.1.0",
"oak-external-sdk": "^1.0.5",

View File

@ -16,6 +16,8 @@ import { createAdapter } from "@socket.io/cluster-adapter";
import { setupWorker } from "@socket.io/sticky";
const DATA_SUBSCRIBER_NAMESPACE = '/ds';
const SERVER_SUBSCRIBER_NAMESPACE = process.env.OAK_SSUB_NAMESPACE || '/ssub';
export async function startup<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends SyncContext<ED>>(
path: string,
contextBuilder: (scene?: string) => (store: AsyncRowStore<ED, Cxt>, header?: IncomingHttpHeaders, clusterInfo?: ClusterInfo) => Promise<Cxt>,
@ -48,7 +50,9 @@ export async function startup<ED extends EntityDict & BaseEntityDict, Cxt extend
console.log('以单实例模式启动');
}
const appLoader = clusterInfo.usingCluster ? new ClusterAppLoader(path, contextBuilder, io.of(DATA_SUBSCRIBER_NAMESPACE)) : new AppLoader(path, contextBuilder, io.of(DATA_SUBSCRIBER_NAMESPACE));
const appLoader = clusterInfo.usingCluster
? new ClusterAppLoader(path, contextBuilder, io.of(DATA_SUBSCRIBER_NAMESPACE), io.of(SERVER_SUBSCRIBER_NAMESPACE), connector.getSubscribeRouter())
: new AppLoader(path, contextBuilder);
await appLoader.mount();
await appLoader.execStartRoutines();
if (routine) {
@ -78,7 +82,7 @@ export async function startup<ED extends EntityDict & BaseEntityDict, Cxt extend
const serverConfig = require(PathLib.join(path, '/configuration/server.json'));
// 如果是开发环境允许options
if (process.env.NODE_ENV === 'development') {
if (['development', 'staging'].includes(process.env.NODE_ENV!)) {
koa.use(async (ctx, next) => {
ctx.set('Access-Control-Allow-Origin', '*');
ctx.set('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With, oak-cxt, oak-aspect');