Socket
Book a DemoInstallSign in
Socket

gcrud

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gcrud

A bare minimum and extensible crud generator

latest
Source
npmnpm
Version
0.1.3
Version published
Maintainers
1
Created
Source

Glorious Crud

A bare minimum and extensible crud generator.

codecov CircleCI

Installation

npm i -S gcrud

Usage

Basic

The purpose of this lib is to remove all the effort involved in creating a default crud as well as keeping everything under your control through its options.

const express = require('express');
const GCrud = require('gcrud');

const app = express();
const gCrud = new GCrud('databaseUrl', 'databaseName', app);

// The line below will make the following endpoints available:
// GET    /beers
// GET    /beers/:id
// POST   /beers
// PUT    /beers/:id
// DELETE /beers/:id
const beersResource = gCrud.build('beers');

// From here, you can add any other custom endpoint you need.
beersResource.get('/beers/:id/awards', (req, res) => {
  // Your specific needs go here.
});

app.listen(9000, () => {
  console.log(`Running on port 9000...`);
});

Options

Using options, you can override any method by doing as follows:

const options = {
  get: (req, res) => {
    // This implementation will override get method.
    // The same can be done for any other method:
    // post, put, delete.
  }
}

const beersResource = gCrud.build('beers', options);

You can also set listeners to be called on success or on error of some method:

const options = {
  // Executes after every successful get request
  onGetSuccess: (req, res, response) => {
    // response is an object containing "status" (200) and "body".
  },
  // Executes after every failed get request
  onGetError: (req, res, err) => {
    // err is an object containing "status" (4xx or 5xx) and "body".
  },
  // Executes after every successful post request
  onPostSuccess: (req, res, response) => {
    // response is an object containing "status" (201) and "body".
  },
  // Executes after every failed post request
  onPostError: (req, res, err) => {
    // err is an object containing "status" (4xx or 5xx) and "body".
  },
  // Executes after every successful put request
  onPutSuccess: (req, res, response) => {
    // response is an object containing "status" (204).
  },
  // Executes after every failed put request
  onPutError: (req, res, err) => {
    // err is an object containing "status" (4xx or 5xx) and "body".
  },
  // Executes after every successful delete request
  onDeleteSuccess: (req, res, response) => {
    // response is an object containing "status" (204).
  }
  // Executes after every failed delete request
  onDeleteError: (req, res, err) => {
    // err is an object containing "status" (4xx or 5xx) and "body".
  }
}

const beersResource = gCrud.build('beers', options);

Contributing

  • Install Node. Download the "Recommend for Most Users" version.

  • Clone the repo:

git clone git@github.com:rafaelcamargo/glorious-crud.git
  • Go to the project directory
cd glorious-crud
  • Install the project dependencies
npm install
  • run:
node src/app.js
  • The API will be running on http://localhost:9000.

  • Make some request to see the API in action:

curl http://localhost:9000/beers -H 'content-type: application/json' -d '{"name":"Opa Bier"}'

NOTE Check out below how to configure MongoDB on your machine before making any request to the API.

Database

  • Install MongoDB following its website instructions.

  • Create a database called gcrud.

  • Create a collection called beers.

  • Start mongo on the default port(27017): Type mongod on your terminal.

Tools

  • Postman is an awesome tool that makes API development a breeze.

  • MongoDB Compass is the prettiest MongoDB UI client I have ever seen.

Deployment Services

The services I recommend to get your ideas out of your head are:

  • 1 GB Transfer, 1 GB Memory, 1 CPU, 512 MB Storage for $0/mo
  • 512 MB Storage, 3 node replica set for $0/mo

Keywords

crud

FAQs

Package last updated on 02 May 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts