bookshelf-factory
bookshelf-factory is a tool that extends the knex-schemer schema definition format to produce an object containing models for each table defined. Using this tool you can define relationships between models as well as views for specific data. The tool also takes care of withRelated for you and provides a custom getResources function that allows you to combine all of the functionality into 1 function while still allowing you to use knex query functions
- See the WIKI for full documentation
- And the Change Log for what's new
Install
npm install -g bookshelf-factory
Usage
// create a database connection configvar config = "client": "mysql" "connection": "host": "127.0.0.1" "user": "db" "password": "password" "database": "test" "charset": "utf8" ; // require the package passing the configvar factory = config;
Basic Example
JavaScript
// create a database connection configvar config = "client": "mysql" "connection": "host": "127.0.0.1" "user": "db" "password": "password" "database": "test" "charset": "utf8" ; // require the package and pass the db connection configvar factory = config;var type = factoryschemerconstantstype; // define a schema in schemer format// in this example survivor.id has the views extended property that defines// views that property belongs to. survivor.groups also has the extended// property belongsToMany and specifies the model to use for the relationshipvar schema = survivor: id: type: typeinteger primary: true increments: true views: 'summary' name: type: typestring size: 200 views: 'summary' groups: belongsToMany: 'group' views: 'summary' station_id: type: typeinteger station: belongsTo: 'station' views: 'summary' group: id: type: typeinteger primary: true increments: true name: type: typestring size: 100 views: 'summary' group_survivor: survivor_id: type: typeinteger primary: true group_id: type: typeinteger primary: true station: id: type: typeinteger primary: true increments: true name: type: typestring size: 100 ;}; // call the create function to create all the modelsvar models = factory; // forge the model and get all of its resourcesmodelssurvivor;
Tools
Created with Nodeclipse (Eclipse Marketplace, site)
Nodeclipse is free open-source project that grows with your contributions.