40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
|
|
#!/usr/bin/env node
|
|||
|
|
/**
|
|||
|
|
* GLADA Service Entry · service-entry.js
|
|||
|
|
*
|
|||
|
|
* 轻量包装器:在 service.js 启动前,自动注入 web 扩展
|
|||
|
|
* (CORS · 映川人格对话 · 系统状态仪表盘)
|
|||
|
|
*
|
|||
|
|
* 原理:拦截 Express app.listen(),在监听前注入 web-extensions 路由
|
|||
|
|
* 这样不需要修改 service.js 本体
|
|||
|
|
*
|
|||
|
|
* PM2 入口:ecosystem.config.js → script: 'service-entry.js'
|
|||
|
|
*
|
|||
|
|
* 版权:国作登字-2026-A-00037559
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
'use strict';
|
|||
|
|
|
|||
|
|
const express = require('express');
|
|||
|
|
const _origListen = express.application.listen;
|
|||
|
|
let _patched = false;
|
|||
|
|
|
|||
|
|
// 拦截 app.listen(),在监听前注入 web 扩展
|
|||
|
|
express.application.listen = function(...args) {
|
|||
|
|
if (!_patched) {
|
|||
|
|
_patched = true;
|
|||
|
|
try {
|
|||
|
|
require('./web-extensions')(this);
|
|||
|
|
console.log('[GLADA] ✅ Web扩展已注入(CORS · 映川对话 · 系统状态)');
|
|||
|
|
console.log('[GLADA] POST /api/glada/chat/yingchuan 映川对话');
|
|||
|
|
console.log('[GLADA] GET /api/glada/system-status 系统状态');
|
|||
|
|
} catch(e) {
|
|||
|
|
console.warn('[GLADA] ⚠️ web-extensions加载跳过:', e.message);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return _origListen.apply(this, args);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
// 启动原始 GLADA 服务
|
|||
|
|
require('./service');
|