使用Knex.js查询构建器库时,是否可以合并用于创建,更新和删除操作的数据验证规则,即使Knex不执行此操作out of the box?
如果是,那么:
即使是Bookshelf也没有验证引擎。
答案 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以获取更多信息。