bookshelf-base-model
v0.0.1
Published
Base model for Bookshelf ORM with some goodies
Downloads
11
Maintainers
Readme
bookshelf-base-model
Base model for bookshelf.
Install
npm install bookshelf-base-model --saveUsage
const knex = require('knex')({...})
const bookshelf = require('bookshelf')(knex)
const BaseModel = require('bookshelf-base-model')(bookshelf)
const User = BaseModel.extend({
tableName: 'user',
fields: {
username: {
validate: ['required']
},
email: {
validate: ['required', 'email']
},
other: {}
}
})Features
Permitted fields
Allow only attributes from fields hash to go into database.
let user = User.forge({
username: 'some-user-name',
email: '[email protected]',
nonofield: 'invalid field'
})
user
.save()
.then(user => {
// user saved without error
// user.get('nonofield') === undefined
})Validation
Add validation to your fields using awesome Checkit module. It supports both sync and async validation. List of all available validators can be found here.
let user = User.forge({ email: 'invalid@email' })
user
.save()
.catch(User.ValidationError, function (err) {
// handle validation error
})
.catch(function (err) {
// handle db/other error
})Test
npm testLicence
MIT
