Members
-
getAllController
-
Description
Request/Response handler function to get all of a resource.Parameters
Name Type Description req
ModelRequest res
Response next
NextFunction Returns
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
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
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
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
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
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
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 errorParameters
Name Type Description fn
function Async function to be wrapped. This function can have any number of parameters. Returns
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
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