Members


getAllController

Description
Request/Response handler function to get all of a resource.
Parameters
Name Type Description
req ModelRequest
res Response
next NextFunction
Returns
An error object if unsuccessful and passes control to next middleware. Else sends a successful response.
Examples
const { getAllController } = require("emfrest/controllers")

Usage

router.route("/").get(getAllController)
Details

createResourceController

Description
Request/Response handler function to create a resource.
Parameters
Name Type Description
req ModelRequest
res Response
next NextFunction
Returns
An error object if unsuccessful and passes control to next middleware. Else sends a successful response.
Examples
const { createResourceController } = require("emfrest/controllers")

Usage

router.route("/").post(createResourceController)
Details

getOneByIdController

Description
Request/Response handler function to fetch a document by its MongoDB ObjectId.
Parameters
Name Type Description
req ModelRequest
res Response
next NextFunction
Returns
An error object if unsuccessful and passes control to next middleware. Else sends a successful response.
Examples
const { getOneByIdController } = require("emfrest/controllers")

Usage

router.route("/:id").get(getOneByIdController)
Details

updateOneByIdController

Description
Request/Response handler function to update a document by its MongoDB ObjectId.
Parameters
Name Type Description
req ModelRequest
res Response
next NextFunction
Returns
An error object if unsuccessful and passes control to next middleware. Else sends a successful response.
Examples
const { updateOneByIdController } = require("emfrest/controllers")

Usage

router.route("/:id").put(updateOneByIdController)
Details

deleteOneByIdController

Description
Request/Response handler function to delete a document by its MongoDB ObjectId.
Parameters
Name Type Description
req ModelRequest
res Response
next NextFunction
Returns
An error object if unsuccessful and passes control to next middleware. Else sends a successful response.
Examples
const { deleteOneByIdController } = require("emfrest/controllers")

Usage

router.route("/:id").delete(deleteOneByIdController)
Details

Methods


Api( app, options )

Description
Entry point for the RESTful API.
Parameters
Name Type Description
app Application Your express app.
options ApiOptions Options for the Api function.
Examples
const { Api } = require("emfrest")

Usage

Api(app, { model: Book, modelName: "book" });
Details

asyncMiddlewareHandler( fn ) → {Promise.<any>}

Description
Wrapper for any async middleware functions.
Parameters
Name Type Description
fn function Async express middleware function to be wrapped.
Returns
A resolved promise or an error.
Examples
const { asyncMiddlewareHandler } = require("emfrest/middleware")

const anAsyncFunction = asyncMiddlewareHandler((req, res, next) => {
   const data = await something()

   next()
})
Details

Router( model, modelName )

Description
An express router for a resource.
Parameters
Name Type Description
model mongoose.Model Mongoose model.
modelName string Model name (singular).
Returns
An express router.
Examples
const { Router } = require("emfrest/router")

Usage

app.use("/modelName", Router(model, modelName))
Details

asyncHandler( fn ) → {Promise.<any>}

Description
Wrapper for any async functions. Handles the error
Parameters
Name Type Description
fn function Async function to be wrapped. This function can have any number of parameters.
Returns
A resolved promise or an error.
Examples
const { asyncHandler } = require("emfrest/middleware")

Usage

const anAsyncFunction = asyncHandler((a, b, c, d, e, ...rest) => {
   const data = await something()

   return datas
})
Details

errorHandler( err, req, res, next )

Description
Function to send a response with an error.
Parameters
Name Type Description
err Error Error object.
req Request Express request object.
res Response Express response object.
next Next Express next function.
Examples
const { errorHandler } = require("emfrest")

Usage

app.use(errorHandler);
Details

successfulResponse( res, statusCode, message, data )

Description
Function to send a successful response.
Parameters
Name Type Description
res Response Express response object.
statusCode number Http status code for the response.
message string Message for the response body.
data any Any data to send with the reponse.
Examples
const { successfulResponse } = require("emfrest/middleware")

Usage

successfulResponse(
  res,
  200,
  `The documents were successfully found.`,
  data
);
Details

appendModelData( model, modelName ) → {function}

Description
Middleware function to add model and modelName to the request object. Makes req.emfrest_model and req.emfrest_modelName accessible.
Parameters
Name Type Description
model mongoose.model Mongoose model.
modelName string Model name (singular).
Returns
An express middleware function
Examples
const { appendModelData } = require("emfrest/middleware")

Usage

router
 .route(`/:${modelName}Id`)
 .get(appendModelData(model, modelName), getOneByIdController)
 .put(appendModelData(model, modelName), updateOneByIdController)
 .delete(appendModelData(model, modelName), deleteOneByIdController);
Details