@transomjs/transom-sequelize
Add Sequelize support to Transom servers
Last updated 4 months ago by binaryops.mark .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @transomjs/transom-sequelize 
SYNC missed versions from official npm registry.

transom-sequelize

A TransomJS module to generate Sequelize models from a SQL database and expose CRUD functions via REST API endpoints. The models are available through the TransomJS server registry for custom functions etc.

  definition: {
    sequelize: {
      directory: 'tableMeta', // Choose a different folder for table metadata. Default: sequelize-metadata.
      overwrite: process.env.NODE_ENV === 'development', // Don't overwrite metadata in Production!
      config: {
        /* Configure the database connection and pooling. */
        host: process.env.DB_HOST,
        database: process.env.DB_NAME,
        username: process.env.DB_USER,
        password: process.env.DB_PASS,
        dialect: 'mysql',
        port: 3306,
        pool: {
          max: 3,
          idle: 30000
        }
      },
      tables: {
        employees: {
          routes: {
              /* The CRUD routes can be disabled as needed by setting them to 'false'. Default: true */
            insert: true,
            find: true,
            findCount: true,
            findById: true,
            updateById: true,
            delete: false, // If not otherwise specified, 'delete' (by Query) is disabled.
            deleteBatch: true,
            deleteById: true
          },
          attributes: {
            emp_no: { 
              primaryKey: true // If the table doesn't have a Primary Key, this tells Sequelize to *not* add an 'id' field and use this column instead.
            },
            first_name: { 
              /* Attributes are the table column names and can be used to override the generated metadata. */
              comment: 'Hello all the World!'
            },
            last_name: {
              queryable: false // Set queryable to  'false', to exclude columns from being queryable with CRUD query parameters.
            }
          },
          methods: {
              /* Instance methods have access to 'this' as the current model instance. */
            fullname: function() {
              // No arrow functions as instance methods!
              // Notice the attibute name: 'first_name' becomes 'firstName'
              return [this.firstName, this.lastName].join(' ');
            }
          },
          statics: {
            /* If the model has a static 'nextVal' function, it will be used to select the next Primary Key value. This is useful where tables don't have an auto-number PK. */
            nextVal: function() {
              return this.sequelize
                .query("SELECT max(emp_no) + 1 as 'empNo' from employees.employees", {
                  type: this.sequelize.Sequelize.QueryTypes.SELECT
                })
                .then(results => results[0]);
            },
            helloWorld: function() {
              return 'Hola Mundo!';
            }
          },
          hooks: {
              /* Any of the hooks supported by Sequelize can be added to Models here. */
            afterFind: function(employees) {
              // No arrow functions as hooks!
              const eeArray = Array.isArray(employees) ? employees : [employees];
              eeArray.map(ee => {
                console.log('Found:', ee.fullname());
              });
            }
          }
        }
      }
    }
  }

Current Tags

  • 1.1.1                                ...           latest (4 months ago)

18 Versions

  • 1.1.1                                ...           4 months ago
  • 1.1.0                                ...           4 months ago
  • 1.0.16                                ...           a year ago
  • 1.0.15                                ...           a year ago
  • 1.0.14                                ...           a year ago
  • 1.0.13                                ...           a year ago
  • 1.0.12                                ...           a year ago
  • 1.0.11                                ...           a year ago
  • 1.0.10                                ...           a year ago
  • 1.0.9                                ...           a year ago
  • 1.0.8                                ...           a year ago
  • 1.0.7                                ...           a year ago
  • 1.0.6                                ...           a year ago
  • 1.0.5                                ...           a year ago
  • 1.0.4                                ...           a year ago
  • 1.0.3                                ...           a year ago
  • 1.0.2                                ...           a year ago
  • 1.0.1                                ...           a year ago
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (3)
Dev Dependencies (9)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |