Releases
v2.2.0
Compare
Sorry, something went wrong.
No results found
重构:app.js 按功能域拆分 + Express Router 路由级鉴权
server/app.js 960 行 → 36 行 :按功能域拆为平级文件——handler.js(端点编排)、zen.js(上游客户端)、openai.js(响应转换)、middleware.js(中间件)、shared.js(共用工具)、config.js(配置)、log.js(日志)
路由改用 express.Router :.get() / .post() 声明,废除 handleRequest 手写 if/else 分发
鉴权改为路由级中间件 requireAuth:只挂受保护路由(models / chat),/、/health、/ip 免鉴权,删除 handleOpenAI 中的重复鉴权
未知路径行为变更 :未注册路径统一返回 404(不再先鉴权返回 401),已用新测试固化
CORS 改用 cors 库 :显式配置 GET, POST, OPTIONS、固定请求头列表、X-Request-Id 暴露、OPTIONS → 204,与原行为一致
移除 Node↔Fetch 适配层 :删 isWebRequest / nodeRequestToFetchRequest / sendNodeResponse / handler 导出,处理器直读原始 body、直写 res(SSE 管道带背压处理,无 body 大小限制)
配置集中到顶层 config 对象 :version / apiKey / debug / port 启动时从环境初始化,运行期可覆盖(测试直接改 config.apiKey)
修复日志 bug :DEBUG="false" 字符串是真值导致日志误开,改为启动时 === "true" 归一成布尔
入口简化 :删除 isMainModule 判断,startServer 收进 app.js,index.js 变纯启动脚本(npm start / Docker CMD 不变)
版本号取自 package.json :import ... with { type: "json" }(Node 24 实测通过),发版只需 npm version,无需改代码
测试 :改为直接 import 目标方法(不再经 app 导出 __test),新增 404 语义 / 尾斜杠 / 公开路由免鉴权 3 个测试
文档 :README 架构小节更新并移至文末
You can’t perform that action at this time.