我有一个需要关联/外键的数据模型。有没有什么方法可以在模型创建期间强制执行该约束,而不会陷入先有鸡还是先有蛋的情况?
假设我有一个 User
类,它至少需要一个 device
与之关联。同样,device
必须属于用户。像这样的东西(未经测试的代码,不要介意语法错误):
User = db.define("user", {
name: Sequelize.STRING
})
Device = db.define("device", {
uuid: Sequelize.STRING
})
User.hasMany(Device)
我想确保在首次调用 create
时,我拥有所有 Device
信息以及所有 User
信息。与“胖模型,瘦 Controller ”保持一致,我想将其放入我的模型中。有可能做这样的事情吗?
user = User.create(
name: "jesse"
device:
uuid: "84e824cb-bfae-4d95-a76d-51103c556057"
)
我可以覆盖 create
方法吗?或者是否有某种类型的 before
保存事件 Hook 我可以使用?
最佳答案
当前master已经支持hooks了。
var User = sequelize.define('User', {
username: DataTypes.STRING
}, {
hooks: {
beforeCreate: function(user, next) {
makeYourCheck(function() {
next("a string means that an error happened.")
})
}
}
})
您可以查看 PR 以获取更多信息:https://github.com/sequelize/sequelize/pull/894
关于node.js - Sequelize.js - "create"或 "build"调用期间的模型关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19640201/