40 lines
946 B
JavaScript
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];
|
|
}
|
|
});
|
|
|