Skip to content

An easy to use RESTful route generator for the Sequelize ORM.

Notifications You must be signed in to change notification settings

ceckenrode/sequelize-router

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sequelize Router 😎

An easy to use, RESTful route generator designed to work with Sequelize.

NPM

Why use Sequelize Router?

  • It's tiny (2kb unminified)

  • It's easy to use! You can get up and running in about a minute with almost zero configuration.

  • It's customizable and extensible. Easily override any of the default route controllers.

Installation

Available on npm:

npm install sequelize-router

Prerequisites

  • sequelize-router is middleware that runs on top of sequelize, a popular ORM for node.js applications. Therefore, make sure that you have configured a database prior to use.

  • (Optional) Consider using sequelize-cli to quickly scaffold models of your database to be used for even quicker deployement:

$ npm install --save-dev sequelize-cli
$ npm install --save sequelize
$ sequelize init:config init:models

Usage

var express = require('express');
// Require the sequelize-router middleware and any models to be used
var sequelizeRouter = require('sequelize-router');
var db = require('./models');

var app = express();
// Use the sequelize-router middleware as shown below
app.use('/api', sequelizeRouter(db.Inventory)); 
app.use('/api', sequelizeRouter(db.Store));
app.use('/api', sequelizeRouter(db.Transaction));

That's literally it. 💥 Restful API Routes are now created for three models.

  • In the example above, RESTful API routes are being created for the Inventory, Store and Transaction models. Model names are lowercased and used to construct endpoints.

API Documentation

HTTP method URL Description
GET /api/inventory Runs a findAll query on the inventory table, additionally filterable with optional query parameters.
*e.g. /api/inventory?stock%5Blte%5D=50 or /api/inventory?category=home_improvement
GET /api/inventory/:id Runs a findOne query on the inventory table and retrieves one record with the id specified in req.params.id.
POST /api/inventory/ Runs a create query on the inventory table, using data passed in req.body to construct the new record.
PUT /api/inventory/:id Runs an update query on the inventory table, using data passed in req.body to update the record with the id specified in req.params.id. By default, query parameters are ignored.
DELETE /api/inventory/:id Runs an destroy query on the inventory table, using data passed in req.body to update the record with the id specified in req.params.id. By default, query parameters are ignored.

Defaults

  • By default, each endpoint responds with the data retrieved from the Sequelize query, or from the error returned.

  • Defaults are can be easily overridden for any model's methods by passing a configuration object into the sequelize-router middleware. Further documentation on this to come.

Authors

Christian Eckenrode

Contributors

About

An easy to use RESTful route generator for the Sequelize ORM.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published