2013-10-28 10 views
5

我有一個需要關聯/外鍵的數據模型。有沒有可能在模型創建期間執行該約束而不進入雞/蛋情況?Sequelize.js - 「create」或「build」調用期間的模型關聯

比方說,我有一個User類,它需要至少一個device與它關聯。同樣,device必須屬於一個用戶。像這樣的東西(未測試的代碼,不介意語法錯誤):

User = db.define("user", { 
    name: Sequelize.STRING 
}) 

Device = db.define("device", { 
    uuid: Sequelize.STRING 
}) 

User.hasMany(Device) 

我想確保當create首次調用,我都Device信息以及所有User信息。保持「胖模型,瘦控制器」我想把它放到我的模型中。是否有可能做這樣的事情?

user = User.create(
    name: "jesse" 
    device: 
     uuid: "84e824cb-bfae-4d95-a76d-51103c556057" 
) 

我可以覆蓋create方法嗎?或者有一些類型的before保存事件鉤我可以使用?

回答

6

當前主人支持鉤子。

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

相關問題