2016-01-23 25 views
3

在使用Knex.js查詢生成器庫時是否可以合併創建,更新和刪除操作的數據驗證規則,即使Knex不執行這個out of the boxknex.js:在創建,更新和刪除查詢中合併驗證規則

如果是的話:

  • 是一個好主意還是壞主意留在裏面Knex這個?
  • 如果這是一個好的方法,有人可以指出一個體面的例子嗎?
  • 如果包含Bookshelf.js,你會更好嗎?

即使Bookshelf沒有帶有驗證引擎。

回答

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); 
    } 
}); 

看看這個issue thread對GH的更深入的瞭解。