Simple Typescript decorators for Express.
npm i @varuntiwari/express-ts-decorators
- Initialize
Express
:
import express from 'express';
const app = express();
- The library uses a single router to handle all the incoming requests. Use the
AppRouter
provided by library to setup Routing:
import express from 'express';
+ import { AppRouter } from '@varuntiwari/express-ts-decorators';
const app = express();
+ app.use(AppRouter.getInstance());
- Now use the
ErrorMiddleware
provided by the library to setup Error Handling:
import express from 'express';
+ import { AppRouter, ErrorMiddleware } from '@varuntiwari/express-ts-decorators';
const app = express();
app.use(AppRouter.getInstance());
+ app.use(ErrorMiddleware);
(Use the middleware after using the AppRouter)
- Create a new file containing your controller class and use the decorators provided by the library:
import {
controller,
get,
post,
bodyValidator,
} from '@varuntiwari/express-ts-decorators';
@controller('/product')
class ProductController {
@get('/product/:id') /* Register a get method */
@use(auth) /* Use one or multiple middlewares */
getProducts(req: Request, res: Response) {
//
}
@post('/product')
@use(auth)
@use(admin)
createProduct(req: Request, res: Response) {
//
}
}
@controller('/auth')
export class AuthController {
@post('/login')
@bodyValidator('email', 'password') /* Validate request body */
login(req: Request, res: Response): void {
//
}
@get('/logout')
logout(req: Request, res: Response): void {
//
}
}
- Import the controller to the
index.ts
file:
import express from 'express';
import { AppRouter, ErrorMiddleware } from '@varuntiwari/express-ts-decorators';
+ import './controllers.ts';
const app = express();
app.use(AppRouter.getInstance());
app.use(ErrorMiddleware);
- Start the server and you are ready to go π
- Decorators for all HTTP request methods like
get
,post
, etc. - Provides request body validators.
- Provides a single pre-configured router.
- Integrated Error Handling, which means that no
try-catch
blocks are required inside controller methods.
-
Clone the repo to your local machine.
-
Install the required dependency for server using :
npm install
-
Build the package using
npm run build
Varun Kumar Tiwari LinkedIn Github |
(If you liked the project, give it star π)