Files
wechatWeb/middleware/baseModel.js
张成 aa8eaa6ccd init
2026-03-24 16:07:02 +08:00

40 lines
946 B
JavaScript

/**
* 模型导出模块(代理模式)
* 从 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];
}
});