const Framework = require('../../framework/node-core-framework'); /** * 数据库代理模块 * 提供统一的数据库模型访问接口,延迟获取models */ class DbProxy { constructor() { this._models = null; } /** * 获取models实例 * @returns {object} models对象 */ get models() { if (!this._models) { try { this._models = Framework.getModels(); } catch (error) { console.warn('无法获取models,请确保框架已正确初始化:', error.message); this._models = {}; } } return this._models; } /** * 获取指定的模型 * @param {string} modelName 模型名称 * @returns {object} 模型实例 */ getModel(modelName) { const models = this.models; if (!models[modelName]) { throw new Error(`模型 '${modelName}' 不存在`); } return models[modelName]; } /** * 获取所有模型 * @returns {object} 所有模型对象 */ getAllModels() { return this.models; } /** * 检查模型是否存在 * @param {string} modelName 模型名称 * @returns {boolean} 是否存在 */ hasModel(modelName) { return !!this.models[modelName]; } /** * 获取模型列表 * @returns {array} 模型名称列表 */ getModelNames() { return Object.keys(this.models); } /** * 重新加载模型(在框架重新初始化后调用) */ reload() { this._models = null; } } // 导出单例实例 module.exports = new DbProxy();