express-beans
v1.2.3
Published
<p align="center"> <img src="assets/logo.svg" alt=""> </p>
Downloads
86
Maintainers
Readme
ExpressBeans
ExpressBeans is the IoC Container (Inversion of Control Container) that you didn't know you needed. If you love Node.js and the Spring Boot way of code organization this lightweight framework is for you. ExpressBeans is an almost zero dependency framework (it wraps Express.js) to offer an easy-to-use way of building your next Express project.
Get started
Try ExpressBeans with the official generator:
npm create express-beans-server
Documentation
API docs and types available in documentation.
Usage
All you need is create an ExpressBeans application and provide your RouterBean
classes:
ExpressBeans.createApp({
routerBeans: [
ExampleRouter,
],
});
/* ======== OR ======== */
const application = new ExpressBeans({
routerBeans: [
ExampleRouter,
],
});
If you need also direct access to express
application:
const application = new ExpressBeans({
routerBeans: [
ExampleRouter,
],
});
const expressApp = application.getApp();
Typescript 5
New decorators are here and ExpressBeans implements some simple decorators to achieve dependency injection and endpoint registration.
Example
import { Request, Response } from 'express';
import { InjectBean, Route, RouterBean } from 'express-beans';
import ExampleService from '../services/ExampleService';
@RouterBean('/example')
export default class ExampleRouter {
@InjectBean(ExampleService)
private exampleService!: ExampleService;
@Route('GET', '/hello')
getHello(_req: Request, res: Response) {
res.end(this.exampleService.example());
}
}
This will create a new router that expose an endpoint GET /example/hello
and
exampleService
will be the instance of the class declared as it follow:
import { Bean } from 'express-beans';
@Bean
export default class ExampleService {
private msg: string;
constructor() {
this.msg = 'hello world!';
}
example() {
return this.msg;
}
}
Installation
npm install express-beans