我正在尝试在用户和他最喜欢的加密货币之间建立联系。
意味着,多个用户可以使用与他们的收藏夹相同的密码。
Coin.js
module.exports = (sequelize, DataTypes) => {
const Coin = sequelize.define('Coin', {
cryptoName: DataTypes.STRING,
})
return Coin
}
User.js
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', {
firstName: DataTypes.STRING,
lastName: DataTypes.STRING,
email: {
type: DataTypes.STRING,
unique: true
},
password: DataTypes.STRING
}, {
hooks: {
beforeSave: hashPassword
}
})
return User
}
这是我目前的两张桌子,现在我正在尝试在它们之间建立关系。并且我一直在控制台上收到此错误,但我不明白为什么。
[CoinUsersRelations.belongsToMany
调用了不是Sequelize.Model
的Function.belongsToMany
子类的东西
CoinsUserRelations.js
const User = require('./User.js')
const Coin = require('./Coin.js')
module.exports = (sequelize, DataTypes) => {
const CoinUsersRelations = sequelize.define('CoinUsersRelations', {
UserID: {
type: DataTypes.INTEGER,
references: {
model: User,
key: "UserID"
}
},
CoinID: {
type: DataTypes.INTEGER,
references: {
model: Coin,
key: "CoinID"
}
}
})
CoinUsersRelations.belongsToMany(Coin, {as: 'Coin', foreignKey: 'CoinID'})
CoinUsersRelations.belongsTo(User, {as: 'User', foreignKey: 'UserID'})
return CoinUsersRelations
}
我真的不确定如果在创建关系之前实际定义了模型,为什么会收到此错误。
您应该注册所有模型,然后将所有模型关联在一起。查看我的answer on a similar problem