Sequelize Router 😎
An easy to use, RESTful route generator designed to work with Sequelize.
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 the sequelize-router middleware and any models to be usedvar sequelizeRouter = ;var db = ; var app = ;// Use the sequelize-router middleware as shown belowapp; app;app;
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
andTransaction
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