Javascript 为什么不在sequelize中使用getter和setter创建外键呢?
我是新来续集的。我已经在我的模型中实现了setter和getter,然后我添加了一个外键,但没有创建它。它仅在移除getter和setter时创建。 我做错了什么 模型区Javascript 为什么不在sequelize中使用getter和setter创建外键呢?,javascript,node.js,express,sequelize.js,Javascript,Node.js,Express,Sequelize.js,我是新来续集的。我已经在我的模型中实现了setter和getter,然后我添加了一个外键,但没有创建它。它仅在移除getter和setter时创建。 我做错了什么 模型区 module.exports = function(sequelize, DataTypes) { const Zone = sequelize.define('Zone', { zone: { type: DataTypes.STRING, allowNull: false }
module.exports = function(sequelize, DataTypes) {
const Zone = sequelize.define('Zone', {
zone: {
type: DataTypes.STRING,
allowNull: false
}
},{
getterMethods: {
zone: () => {
return this.getDataValue('zone');
}
},
setterMethods: {
zone: (zone) => {
return this.setDataValue('zone', zone);
}
}
},{
classMethods: {
associate: (models) => {
Zone.hasMany(models.Client, {
foreignKey: 'zone_id',
as: 'zoneFk'
});
},
},
});
return Zone;
};
模型客户端
module.exports = (sequelize, DataTypes) => {
const Client = sequelize.define('Client',{
//atributtes...
}, {
classMethods: {
associate: (models) => {
Client.belongsTo(models.Zone, {
foreignKey: 'zone_id',
onDelete: 'CASCADE'
});
},
},
});
return Client;
};
sequelize.define的第一个参数接受如下列的定义
sequelize.define('Zone', {
zone: {
type: DataTypes.STRING,
allowNull: false
},
zone_id: {
type:DataTypes.INTEGER,
primaryKey: true,
//autoIncrement:true
}
},
这里的区域id必须是唯一的/主键,以便与唯一值匹配