Я интегрирую Sequelize в ActionHero. Мой инициализатор выполняет следующие действия:Загрузка ассоциаций в Sequelize
// configure the singleton
api.sequelize.sequelize = new Sequelize(
api.config.sequelize.database,
api.config.sequelize.username,
api.config.sequelize.password,
api.config.sequelize
);
// import models
var dir = path.normalize(api.projectRoot + '/models');
fs.readdirSync(dir).forEach(function(file){
var nameParts = file.split("/");
var name = nameParts[(nameParts.length - 1)].split(".")[0];
api.models[name] = api.sequelize.sequelize.import(dir + '/' + file);
});
// import associations
var dir = path.normalize(api.projectRoot + '/models/associations');
// ???
Вот пример модель в одном файле в/модели:
module.exports = function(sequelize, DataTypes) {
return sequelize.define(
"Party",
{
id: {
type: DataTypes.BIGINT,
primaryKey: true,
autoIncrement: true
},
name: {
type: DataTypes.STRING(256),
allowNull: false,
unique: true,
comment: "The legal name for the Party."
},
dbaName: {
type: DataTypes.STRING(256),
comment: "The 'does business as' name for the Party."
}
},
{
comment: "A Party is a person or group of persons composing a single entity with one or more roles in the system."
}
)
}
Не знаю, как определить и загрузить ассоциацию в Sequelize. Я хотел бы иметь их в отдельных файлах и загружать после загрузки всех моделей, чтобы связать их вместе. Например, будет файл PartyOperator.js
, который будет содержать связь между этими двумя объектами.
Что бы ??? раздел в инициализаторе и файл ассоциации с образцом?