Skip to content
An easy to use RESTful route generator for the Sequelize ORM.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
CHANGELOG.md
README.md
index.js
package.json

README.md

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

You can’t perform that action at this time.