@adarshguptadev/exbackend-kit
v1.0.1
Published
Production-ready Express.js toolkit with logger, security, password hashing, and JWT utilities.
Maintainers
Readme
exbackend-kit
Production-ready Express.js toolkit with Logger, Security and Authentication utilities.
Installation
npm install @adarshguptadev/exbackend-kitBasic Usage
const express = require("express");
const {
setupLogger,
setupHelmet,
setupRateLimit
} = require("@adarshguptadev/exbackend-kit");
const app = express();
// Logger
setupLogger(app);
// Security
setupHelmet(app);
setupRateLimit(app);
app.listen(3000, () => {
console.log("Server running on port 3000");
});Features
Logger
- Winston logging
- Morgan request logger
- Daily log rotation
- Error logs
- Auto log cleanup
- Production-ready defaults
- Fully customizable
Security
- Helmet middleware
- Express rate limit
- Secure production defaults
- Fully customizable
Authentication
- Password hashing
- Password compare
- JWT generate
- JWT verify
Logger Setup
Default Behavior
- logs folder auto create
- daily rotate logs
- auto delete old logs
- request logging
- error logging
- console logs disabled by default
Advanced Usage
// import
const { setupLogger } = require("@adarshguptadev/exbackend-kit");
// use
setupLogger(app, {
logDir: "logs",
retainDays: 7,
// Enable console logs in development
consoleLog: process.env.NODE_ENV !== "production",
// Add more custom options here
});Helmet Setup
Advanced Usage
// import
const { setupHelmet } = require("@adarshguptadev/exbackend-kit");
// use
setupHelmet(app, {
contentSecurityPolicy: true,
crossOriginEmbedderPolicy: false,
// Add more custom options here
});Rate Limit Setup
Default Behavior
- 100 requests per 5 minutes
- standard headers enabled
- legacy headers disabled
Advanced Usage
// import
const { setupRateLimit } = require("@adarshguptadev/exbackend-kit");
// use
setupRateLimit(app, {
windowMs: 10 * 60 * 1000,
max: 50,
// Add more custom options here
});Authentication
Hash Password
// import
const { hashPassword } = require("@adarshguptadev/exbackend-kit");
// use
const hashed = await hashPassword(password);Compare Password
// import
const { comparePassword } = require("@adarshguptadev/exbackend-kit");
// use
const isMatch = await comparePassword(
password,
hashedPassword
);Generate JWT
// import
const { generateToken } = require("@adarshguptadev/exbackend-kit");
// use
const token = generateToken(
{ id: user._id },
process.env.JWT_SECRET
);Advanced Usage
// import
const { generateToken } = require("@adarshguptadev/exbackend-kit");
// use
const token = generateToken(
{ id: user._id },
process.env.JWT_SECRET,
{
expiresIn: "30d",
// Add more custom options here
}
);Verify JWT
// import
const { verifyToken } = require("@adarshguptadev/exbackend-kit");
// use
const decoded = verifyToken(
token,
process.env.JWT_SECRET
);Default Logger Files
logs/
├── app-2026-05-19.log
└── error-2026-05-19.logAuthor
Adarsh Gupta
License
MIT
