knex.js:在创建,更新和删除查询中包含验证规则

时间:2016-01-23 22:29:13

标签: javascript validation knex.js

使用Knex.js查询构建器库时,是否可以合并用于创建,更新和删除操作的数据验证规则,即使Knex不执行此操作out of the box

如果是,那么:

  • 留在Knex这是一个好主意还是坏主意?
  • 如果这是一个好的方法,有没有一个人可以指出的一个很好的例子?
  • 如果你包括Bookshelf.js,
  • 你会变得更好并且摩擦力更小吗?

即使是Bookshelf也没有验证引擎。

1 个答案:

答案 0 :(得分:3)

最好使用书架,因为它在交易期间提供事件。虽然书架没有内置验证引擎,但您可以使用Checkit。它由Knex和Bookshelf的同一作者构建。通过挂钩saving事件,您可以有效地验证您的模型。

这是一个简单的例子:

var User = Bookshelf.Model.extend({
    tableName: 'users',
    initialize: function() {
        this.on('saving', this.validate, this);
    },
    validations: {
        email: ['required', 'validEmail'],
        username: ['required', 'alphaNumeric'],
        age: ['isNumeric']
    },
    validate: function(model, attrs, options) {
        return CheckIt(this.toJSON()).run(this.validations);
    }
});

查看有关GH的issue thread以获取更多信息。