1.0.0 • Published 4 months ago
@slowmoe17/express-decorators v1.0.0
Express Decorators
A decorator-based middleware system for Express.js applications that provides a clean and intuitive way to define routes, middleware, and parameter handling.
Installation
npm install express-decorators
Features
- HTTP method decorators (@Get, @Post, @Put, @Delete, @Patch)
- Middleware decorator for applying Express middleware
- Parameter decorators for accessing request body, URL parameters, and query parameters
Usage
import { Get, Post, Middleware, Body, Param, Query, createController } from 'express-decorators';
import express from 'express';
// Example middleware
const auth = (req, res, next) => {
// Your authentication logic here
next();
};
class UserController {
@Get('/users')
@Middleware(auth)
async getUsers(@Query('page') page) {
return { users: [], page };
}
@Post('/users')
async createUser(@Body() userData) {
return { message: 'User created', user: userData };
}
@Get('/users/:id')
async getUser(@Param('id') id) {
return { userId: id };
}
}
const app = express();
app.use(express.json());
app.use('/api', createController(UserController));
app.listen(3000, () => console.log('Server running on port 3000'));
API Reference
HTTP Method Decorators
@Get(path)
: Handle GET requests@Post(path)
: Handle POST requests@Put(path)
: Handle PUT requests@Delete(path)
: Handle DELETE requests@Patch(path)
: Handle PATCH requests
Middleware Decorator
@Middleware(...middlewares)
: Apply Express middleware functions to a route
Parameter Decorators
@Body(param?)
: Access request body or a specific body parameter@Param(param?)
: Access URL parameters or a specific URL parameter@Query(param?)
: Access query parameters or a specific query parameter
Controller Factory
createController(ControllerClass)
: Create an Express router from a controller class
License
MIT
1.0.0
4 months ago