js关系验证
sequelize.js relationship validation
假设我有两个模型:
var Movie = sequelize.define('movies', {
/* model definition */
})
var Genre = sequelize.define('genres', {
/* model definition */
});
Movie.hasMany(Genre);
Genre.hasMany(Movie);
如果我想规定一部电影必须至少有一种类型,我该怎么做呢?
我在明显的地方找过了。我最初的想法是构建(),验证()和保存(),但是查看源代码。validate()只容纳模型定义中定义的字段。
。
Genre.find({where:{'name':'horror})
.success(function (horrorGenre) {
var movie = Movie.build({..});
movie.addGenre(horrorGenre);
if (! movie.validate()) { // This doesn't consider related data
movie.save();
}
});
所以我认为我需要实现某种自定义验证机制,但我不完全确定从哪里开始。
注意我正在维护我自己的Sequelize分支,所以这更多的是一个问题,我如何修改Sequelize源来做我想做的事情,而不是拼凑一个粗糙的固体实现。
您可以尝试在数据库中搜索类型对象,并为movie
调用addGenre
Genre.findall({where:{'name':["genre1","genre1"]})
.success(function (genres) {
if(genres.length==0){
console.log("Genres were not found!");
// exit somehow maybe res.json(200,{"msg","not ok"});
}
var movie = Movie.build({..});
var queryChainer = new Sequelize.Utils.QueryChainer;
for(var i = 0 ; i != genres.length ; i++){
queryChainer.add(movie.addGenre(genres[i].id));
}
queryChainer.run().success(function(){}).error(function(){});
});
这样你就会知道至少有一种类型将被添加到提交的电影!
相关文章:
- 正在验证8个真/假复选框或复选框中的2个
- 借助asp.net验证或java脚本对多个文本进行验证
- jQuery自定义验证比较多个输入的序列
- 使用html中的外部javascript进行数据验证
- 如何使用jquery Validation验证Formspread
- jquery中的文本框验证
- 在验证和发送邮件后更改联系人表单的 html
- 代码不会验证
- JS验证ajax返回的html中的表单数据
- 同步调用,直到用户通过angular验证为访问者
- 带有加号的电话号码验证(可选)
- 解析javascript表单验证器
- 两位数的月份日期验证
- 使用angularjs验证文本框中的电子邮件
- 验证Javascript中的Textarea
- 使用regex的jquery keydown绑定不会验证撇号和句点
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 使用hapijs/joi验证参数之间的关系
- 当涉及下拉依赖关系时,javascript中的表单验证
- js关系验证