2.0.0 • Published 1 year ago

@cloudedots/enhanced-express v2.0.0

Weekly downloads
3
License
ISC
Repository
github
Last release
1 year ago

Enhanced Express

Enhance Express Functionalities - Adds following extra functionality to express Request and Response objects

Request Object :

  • getUser() - Get user from session req.session.user

Response Object :

  • errors - Default Error Codes 400, 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 object
  • customErrorRes() - Send custom error response
  • handle() - Handle Request
  • handleErrorRes() - 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
        });
});
2.0.0

1 year ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago