在SailsJS中将标准传递给验证和生命周期回调

时间:2015-08-25 13:42:14

标签: sails.js waterline

更新

正如评论部分@Alexis所指出的那样,这与S.O.上发布的here的另一个问题类似。答案指向水线核心内的well known issue(或特征?)。

我会打开这个问题,因为这个问题和上面提到的问题都不同,但依赖于相同的基础功能。

一旦在水线上可以获得完整的解决方案。

OP

有没有办法在验证和beforeUpdate回调中传递条件?

用例场景是我想从条件中获取primaryKey值并根据该值查询数据库。

具体示例:我有2个表,作者和文章(一个作者有很多文章)。现在,我希望每个作者文章的title属性都是唯一的。

所以:

var author = {
        name: "Sam Johnson",
        id: 123
    },
    articles = [{
        id: 1,
        title: "title1",
        owner: 123
    }, {
        id: 2,
        title: "title2",
        owner: 123
    }];

现在,在更新第一篇文章的标题时,要检查它是否已经存在;

Article.update(1, {title: "title2"});

现在,我在文章模型中为title属性提供了一个自定义验证器,如下所示:

... // irrelevant
attributes: {
    ... // irrelevant
    title: {
        type: "string",
        required: true,
        uniqueTitle: function(cb) {
            console.log(this) // {title: "newTitleValue"}
            // so this is quite usless :(
            cb();
        }
    }
},
beforeUpdate: [
    function _checkTitle(values, cb) {
        console.log(values) // same as above {title: "newTitleValue"}
        console.log(this) // the model, with no criteria or primaryKey property set, which becomes useless :(
        cb();
    }
]
...

有关如何在这些挂钩中访问更新标准的任何想法? :(

0 个答案:

没有答案