@cloudedots/enhanced-express
v2.0.0
Published
Library to add enhanced functionalities to Express Request and Response Objects
Downloads
4
Readme
Enhanced Express
Enhance Express Functionalities - Adds following extra functionality to express Request and Response objects
Request Object :
getUser()
- Get user from sessionreq.session.user
Response Object :
errors
- Default Error Codes400
,401
,404
,409
,500
successRes()
- Send Success Response (Single Item Response)successListRes()
- Send Success Response (List Response)errorRes()
- Send Error response using default error codes mentioned in errors objectcustomErrorRes()
- Send custom error responsehandle()
- Handle RequesthandleErrorRes()
- Handle Error Response
Installation :
$ npm i --save @cloudedots/enhanced-express
Usage :
var express = require('express');
var app = express();
var enhancedExpress = require('@cloudedots/enhanced-express');
// Use Enhanced Express Middleware with Express Application
app.use(enhancedExpress({
logger: console // You can pass other loggers which have log, error, debug functions like 'log4js'
}));
// Get User data from session
app.get('/hello', (req, res) => {
res.status(200).send('Hi, ' + req.getUser().name + '!');
});
// Send Success response of single item
app.get('/hello', (req, res) => {
res.successRes('Hi, there!');
});
// Send success list response function
app.get('/items', (req, res) => {
res.successListRes({
data: [
{id: 1, name: 'item 1'},
{id: 2, name: 'item 2'}
],
total: 15,
limit: 2,
page: 1,
search: '',
sort: 'name',
order: 'asc'
});
});
// Send default error response
app.get('/item/:id', (req, res) => {
res.errorRes(404); // Use 404 - 'NOT_FOUND' response
});
// Send custom error response
app.put('/item/:id', (req, res) => {
try {
// Do your thing
} catch (error) {
res.customErrorRes(500, error, 'CUSTOM_ERROR');
}
});
// Handle Request with a controller
var itemsController = (catId, itemId) => {
return new Promise((resolve, reject) => {
try {
let item = new Item(catId, itemId);
resolve(item);
} catch(error) {
reject(error);
}
});
};
app.get('/categories/:cid/items/:id', (req, res) => {
res.handle(itemsController, [req.params.cid, req.params.id], 'single', req.params.id);
// or
res.handle(itemsController, req.params.id, 'list', [req.params.cid, req.params.id]);
});
// Handle error response
app.get('/categories/:cid/items/:id', (req, res) => {
itemsController(req.params.cid, req.params.id)
.then(data => {
res.successRes(data);
})
.catch(error => {
res.handleErrorRes(error); // Middleware will handle what to do with the error
});
});