【问题标题】:knex.js: incorporating validation rules in create, update, and delete queriesknex.js:在创建、更新和删除查询中合并验证规则
【发布时间】:2016-01-23 22:29:12
【问题描述】:

是否可以在使用 Knex.js 查询构建器库时为创建、更新和删除操作合并数据验证规则,即使 Knex 不这样做out of the box

如果是,那么:

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

即使是书架也没有验证引擎。

【问题讨论】:

    标签: javascript validation knex.js


    【解决方案1】:

    最好使用书架,因为它在交易期间提供事件。虽然书架没有内置验证引擎,但您可以使用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 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      相关资源
      最近更新 更多