express-rate-limit-ioredis-store
Version:
A redis store implementation to be used alongside ioredis for the express-rate-limit middleware
34 lines • 1.2 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = __importDefault(require("express"));
const express_rate_limit_1 = __importDefault(require("express-rate-limit"));
const http_1 = __importDefault(require("http"));
const ioredis_1 = __importDefault(require("ioredis"));
const ms_1 = __importDefault(require("ms"));
const src_1 = __importDefault(require("../../src"));
const limiter = (0, express_rate_limit_1.default)({
store: new src_1.default({
client: new ioredis_1.default('localhost:6379'),
}),
max: 10,
windowMs: (0, ms_1.default)('3s'),
handler: (_, res) => {
return res.json({ error: 'Too many requests' });
},
});
function createServer() {
const app = createApp();
return http_1.default.createServer(app);
}
exports.default = createServer;
function createApp() {
const app = (0, express_1.default)();
app.get('/', limiter, (_, res) => res.json({
message: 'No problems so far',
}));
return app;
}
//# sourceMappingURL=createServer.js.map