init
This commit is contained in:
39
middleware/baseModel.js
Normal file
39
middleware/baseModel.js
Normal file
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* 模型导出模块(代理模式)
|
||||
* 从 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];
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user