1.0.3 • Published 4 years ago

crude-boy v1.0.3

Weekly downloads
12
License
SEE LICENSE IN LI...
Repository
github
Last release
4 years ago

CRUDe-boy

A nodeJS mongoDb CRUD helper. Give it a model and you're good to go.

Motivation

Basically tries to recreate a Django Rest Framework Viewset. Express is a great tool, but can get quite repetitive and requires a bunch of code to get one simple thing going: a CRUD endpoint. CRUDe-boy aims at easing this process. It gives you 4 handy controllers, one per HTTP method (GET, PUT, POST, DELETE)

How to use?

Simply download it from npm

npm i crude-boy

Then you can use it in your app. You first specify a mongodb model then pass it to the consructor as well as a name. This name is used for sending personnalized response messages.

// inits the user controller
const userController = new CRUDController(UserModel, 'user');

/**
 * You can then use as in regular express as many
 * middleware as you want to verify auth, params 
 * sent etc.
 * 
 * ! note that you have to specify :id? as an optionnal * param 
 */ 
app
  .route('/users/:id?')
  .delete(verifyToken, verifyAuth, userController.deleteController)
  .get(verifyToken, verifyAuth, userController.getController)
  .put(verifyToken, verifyAuth, userController.putController);

What it can do

Methodendpoint params (route + ...)ParamsResults
GET/nullRetreives all the data
GET/offset, limit in query paramsRetreives all the data using offset/limit pagination
GET/id in query paramsRetreives the item with the given id
GET/idnullRetreives the item with the given id
GET/ids in query paramsRetreives all the items with the specified ids
------------
POST/data as an object of required data in bodyCreates an element of this entity
POST/data as an array of objects specifing required data in bodyCreates all the elements specified
------------
DELETE/id in query paramsDeletes the item with the given id
DELETE/ids in query params, comma separatedDeletes all the specified items
DELETE/idnullDeletes the item with the given id
------------
PUT/iddata in bodyModifies the item with the given id using the data in body
PUT/data & id in bodyModifies the item with the given id using the data in body
PUT/data & ids in bodyModifies the items with the given ids using the data in body

Contributing

See the CONTRIBUTING document

License

See the LICENSE document