-
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.
Available on npm:
npm install sequelize-router
-
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
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));
- In the example above, RESTful API routes are being created for the
Inventory
,Store
andTransaction
models. Model names are lowercased and used to construct endpoints.
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. |
-
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.
Christian Eckenrode