UNPKG

@mvp-rockets/namma-ratelimit

Version:
99 lines (80 loc) 2.59 kB
require('app-module-path').addPath(__dirname); const express = require('express'); const app = express(); const server = require('http').createServer(app); app.use(express.json()); app.use(express.urlencoded({ extended: true })); const cls = require('cls-hooked'); const CLS_NAMESPACE = "namma_rateLimit" const createNamespace = require('cls-hooked').createNamespace; createNamespace(CLS_NAMESPACE); const { ApiError } = require('@mvp-rockets/namma-lib/utilities'); const { logInfo, logError } = require('@mvp-rockets/namma-lib/utilities'); const { HTTP_CONSTANT } = require('@mvp-rockets/namma-lib'); const { Logger } = require('@mvp-rockets/namma-lib'); const ratelimit = require('ratelimit') ratelimit.initialize({ socket: { host: 'redis_server' }, password: 'eYVX7EwVmmxKPCDmwMtyKVge8oLd2t81' }); const uuid = require('uuid') Logger.initialize({ isEnable: false, clsNameSpace: CLS_NAMESPACE }); app.use((req, res, next) => { const namespace = cls.getNamespace(CLS_NAMESPACE); namespace.run(() => { namespace.set('traceId', uuid.v4()); logInfo(`${req.method} ${req.originalUrl}`, { ...req.body }); next(); }); }); const { requestsPerMin } = require('ratelimit') app.get('/rate-limit-test', requestsPerMin(10), (req, res) => { res.send({ status: false, message: 'working fine', }); }); app.use((req, res, next) => { const err = new ApiError('Not Found', 'Resource Not Found!', HTTP_CONSTANT.NOT_FOUND); next(err); }); app.use((error, request, response, next) => { if (error.constructor === ApiError) { logError('Failed to execute the operation', { value: error.error, stack: error.error ? error.error.stack : [] }); if (error.code) { response.status(error.code); } response.send({ status: false, message: error.errorMessage }); } else { response.status(501); logError('Failed to execute the operation', { value: error, stack: error.stack }); response.send({ status: false, errorType: 'unhandled', message: 'Something went wrong!' }); } }); process.on('unhandledRejection', (error) => { console.log(error); logError('unhandledRejection', { error }); }); process.on('uncaughtException', (error) => { console.log(error); logError('uncaughtException', { error }); }); const API_PORT = 3000 server.listen(API_PORT, () => { console.log(`Express server listening on Port :- ${API_PORT}`); });