Skip to content

danielrohers/web-crud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Web application CRUD Node and Mongoose

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published