/** * 模型导出模块(代理模式) * 从 Framework 动态获取已初始化的模型 * 使用 Proxy 延迟获取,确保 Framework 已初始化 */ const Sequelize = require("sequelize"); const Framework = require("../framework/node-core-framework.js"); const db = require("./db_proxy"); module.exports = new Proxy({}, { get(_, prop) { // 获取 Framework 初始化的模型 const models = Framework.getModels(); if (!models) { throw new Error('Framework not initialized. Please call Framework.init() first.'); } // 特殊属性处理 if (prop === 'Sequelize') { return Sequelize; } if (prop === 'op') { return Sequelize.Op; } if (prop === 'querySql') { return async (sql) => { return await db.sequelize.query(sql, { type: Sequelize.QueryTypes.SELECT }); }; } // 返回对应的模型 return models[prop]; } });