A unified toolkit for Express.js that provides pre-built CRUD logic, robust S3 file upload handling, and dynamic routing helpers.
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.
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 Sabbir Mahmud