Git Product home page Git Product logo

koa-sequelize-rest's Introduction

koa-sequelize-rest

Generates REST middlewares for Sequelize models.

Examples

Simple setup

let koa = require('koa');
let Rest = require('koa-sequelize-rest');

let app = koa();

let Model = require('./model');
let ModelRest = new Rest(Model);

app.use(ModelRest.readAll());

Returns

{
  "model": [
    { "value": "A" },
    { "value": "B" },
    { "value": "C" }
  ]
}

Router example

koa-sequelize-rest is especially handy when used alongside koa-router :

let router = koaRouter();

router.get('/', ModelRest.readAll());
router.post('/', ModelRest.create());
router.get('/:uuid', ModelRest.readOne());
router.put('/:uuid', ModelRest.update());
router.delete('/:uuid', ModelRest.delete());

app.use(router.routes());
app.use(router.allowedMethods());

API

new Rest(model)

Instanciate a new koa-sequelize-rest helper instance.

Signature

  • (param) model, a Sequelize model
  • (returns) rest, a Rest instance tied to model

rest.getEntity(includes)

Loads a model instance in Koa's context state.

Signature

  • (param) includes
  • (returns) a generator

rest.readOne()

Fetches a model instance and returns it in the response.

Signature

  • (returns) a generator

rest.readAll(options)

Fetches a bunch of model instances and returns them in the response.

Signature

  • (param) options, a javascript object passed on to Sequelize's instance.findAll
  • (returns) a generator

rest.create()

Creates and saves a new instance of model, then returns the newly created instance in the response.

Signature

  • (returns) a generator

rest.update(options)

Updates an instance of model, then returns the updated instance in the response.

Signature

  • (param) options, a javascript object passed on to Sequelize's instance.update
  • (returns) a generator

rest.delete()

Deletes an instance of model.

Signature

  • (returns) a generator

License

MIT

koa-sequelize-rest's People

Contributors

f6m6 avatar n6g7 avatar

Watchers

James Cloos avatar Jeyson Montenegro avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.