@backwood/sequelize v1.0.6
Installation
npm install --save @backwood/backwood @backwood/rest @backwood/sequelize
Packages
Model Usage
Start by adding the provider to the providers
array in your start/app.js
file
...
exports.providers = [
'@backwood/sequelize', // <-- must be added before the rest of the Backwood providers
'@backwood/rest',
'@backwood/backwood'
]
Now export an object named models
in the same file
exports.models = {
Users: 'App/Models/Users'
}
app/Models/Users
'use strict'
const bcrypt = use('bcryptjs') const Model = use('Model')
module.exports = class Users extends Model {
/**
- Whether or not a service
- should be created for this model
- @property createService
- @optional
- @static
@type {Boolean} */ static get createService() { return false }
/**
Define name for the service
- @property serviceName
- @optional
- @static
@type {String} */ static get serviceName() { return 'users' }
/**
Define pagination for the service
- @property paginate
- @optional
- @static
@type {Object} */ static get paginate() { return {} }
/**
Define database table for the Sequelize Model
- @property tableName
- @required
- @static
@type {String} */ static get tableName() { return 'users' }
/**
Define attributes for the Sequelize Model
- @method attributes
- @argument {Object} DataTypes
- @returns {Object}
- @static
@required */ static attributes(DataTypes) { return { username: DataTypes.STRING } }
/**
Define options for the Sequelize Model
- @property options
- @optional
- @static
@type {Object} */ static get options() { return { timestamps: false } }
/**
Define service hooks
- @property serviceHooks
- @static
@type {Object} */ static get serviceHooks() { return {} }
/**
Define hooks for the Sequelize Model
- @property hooks
- @static
@type {Object} */ static get hooks() { return { beforeCreate(account, options) { const salt = bcrypt.genSaltSync(10) account.password = bcrypt.hashSync(account.password, salt) } } }
/**
Sequelize instance method
- for verifying a users password
- @method verifyPassword
- @param {String} password
- @return {String} hashed password */ verifyPassword(password) { return bcrypt.compareSync(password, this.password) }
}