web-crud

0.0.6 • Public • Published

web-crud

Web application CRUD Node and Mongoose

  • list
  • create
  • findById
  • update
  • delete

npm version npm

Installation

$ npm install web-crud --save

Example

model/foo.js

'use strict';
 
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
 
const FooSchema = new Schema({
    name: {
        type: String,
        required: true
    },
    last_name: {
        type: String,
        required: true
    },
    full_name: {
        type: String,
        required: true
    },
});
 
module.exports = mongoose.model('Foo', FooSchema);

controller/foo.js

'use strict';
 
const Model = require('./model/foo');
const Crud = require('web-crud');
 
Crud.model(Model); // set model mongoose
 
module.exports = class Foo extends Crud {
 
    // if you want to override
    static create (req, res) {
        req.body.full_name = `${req.body.name} ${req.body.last_name}`
        super.create(req, res); // call the super method or not :)
    };
 
};

route/foo.js

'use strict';
 
const express = require('express');
const router = express.Router();
const controller = require('./controller/foo');
 
router
    .route('/')
    .get(controller.list)
    .post(controller.create)
 
router
    .route('/:id')
    .get(controller.findById)
    .put(controller.update)
    .delete(controller.delete)
 
module.exports = router;

List method accepts common query parameters. To prevent column name confusion, some of those parameter are prefixed with underscore.

  • Find
/myapiurl/list?my_object_propertie=SomeValue

According to: http://mongoosejs.com/docs/api.html#query_Query-find

  • Limit
/myapiurl/list?_limit=10

According to: http://mongoosejs.com/docs/api.html#query_Query-limit

  • Skip
/myapiurl/list?_skip=5

According to: http://mongoosejs.com/docs/api.html#query_Query-skip

  • Sort
/myapiurl/list?_sort=property_name
/myapiurl/list?_sort=-property_name

According to: http://mongoosejs.com/docs/api.html#query_Query-sort

  • Count
/myapiurl/list?_count=true

According to: http://mongoosejs.com/docs/api.html#query_Query-count

Technologies

License

MIT

Package Sidebar

Install

npm i web-crud

Weekly Downloads

5

Version

0.0.6

License

MIT

Last publish

Collaborators

  • danielrohers