knex.js:在创建、更新和删除查询中加入验证规则

mg1*_*075 5 javascript validation knex.js

是否有可能纳入的创建,更新数据验证规则和删除操作使用Knex.js查询生成器库时,即使Knex不这样做开箱

如果是,那么:

  • 为此留在 Knex 是好主意还是坏主意?
  • 如果这是一个不错的方法,有人可以指出一个像样的例子吗?
  • 如果包含 Bookshelf.js,您会过得更好并减少摩擦吗?

甚至 Bookshelf 也没有配备验证引擎。

Set*_*eth 4

最好使用书架,因为它在交易期间提供事件。虽然 bookshelf 没有内置验证引擎,但您可以使用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);
    }
});
Run Code Online (Sandbox Code Playgroud)

查看GH 上的此问题主题以获得更多见解。