An advanced, unified toolkit for Express.js that accelerates API development by providing automated CRUD operations, dynamic routing capabilities, and robust Amazon S3 file upload handling out of the box.
Full Documentation & Live Demo
Designed to help you build APIs faster by automating repetitive controller logic and middleware configuration while maintaining type safety and flexibility.
- New Feature: Added an optional
onGetlifecycle hook giving request-time control over.populate()and.select()on all GET operations (getAll,getById, and paginated results). - New Feature: Integrated
sharpfor automatic image compression and processing before S3 uploads, optimizing file sizes and delivery.
Install the package using your favorite package manager:
npm install express-controller-sets mongoose express multer multer-s3 dotenv @aws-sdk/client-s3Build a full-featured API for your model in just a few lines of code.
import express from 'express';
import { createRouter } from 'express-controller-sets';
import Product from './models/Product.js';
const app = express();
app.use(express.json());
// Create all CRUD routes automatically
const productRouter = createRouter({
model: Product,
orderBy: '-createdAt', // Sort by newest
search: ['name', 'category.name'], // Enable ?search= or ?s= for multi-field search, including relational fields
query: ['category'] // Enable ?category= filtering
});
app.use('/api/products', productRouter);Tip
View the Full Documentation & Live Demo for a complete list of endpoints, filtering options, and S3 configuration.
Released under the MIT License. © 2024-present Sabbir Mahmud