Natural Performance Manager
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    asbestospublic

    asbestos

    Generate hapi CRUD handler functions from a model constructor function

    use

     
    var route = {
      method: "POST",
      path: "/models",
      handler: handlers.create
    }
     
    // model prototype
    var model = {
     
      // model must expose create method
      create: function (obj, cb) {
     
        //... do some db stuff
        return cb("created");
      },
     
      // model must expose findOne method
      findOne: function (criteria, cb) {
     
        //... do some db stuff
        return cb("found");
      },
     
      // model must expose update method
      update: function (criteria, changes, cb) {
     
        //... do some db stuff
        return cb("updated");
      },
     
      // model must expose delete method
      del: function (criteria, cb) {
     
        //... do some db stuff
        return cb("deleted");
      }
     
      // model must expose search method
      find: function (criteria, cb) {
     
        //... do some db stuff
        return cb("deleted");
      }
    }
     
    var handlers = require("asbestos")(model);
     

    api

    asbestos exposes a single function that returns on object with 5 methods:

    1. .create
    2. .find
    3. .findOne
    4. .update
    5. .del

    createHandlers(obj)

    params

    obj: an object with create, find, findOne, update, and del methods.

    returns

    An object with 5 methods:

    .create(req, res): a hapi handler function. It passes req.payload to the constructor's create method. It returns the object just created on success.

    .find(req, res): a hapi handler function. It passes req.query to the constructor's find method. It returns the matched documents on success. It returns an empty array if not found.

    .findOne(req, res): a hapi handler function. It passes req.params.id to the constructor's findOne method. It returns the matched document on success. It returns an empty object and a 404 if not found.

    .update(req, res): a hapi handler function. It passes req.params.id and req.payload to the constructor's update method. It returns the updated document on success. It returns an empty object and a 404 if not found.

    .del(req, res): a hapi handler function. It passes req.params.id to the constructor's delete method. It returns the deleted document on success. It returns an empty object and a 404 if not found.

    license

    MIT

    install

    npm i asbestos

    Downloadsweekly downloads

    4

    version

    1.0.1

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar
    • avatar