1.2.2 • Published 3 days ago

express-beans v1.2.2

Weekly downloads
-
License
MIT
Repository
github
Last release
3 days ago

GitHub Snyk Vulnerabilities for GitHub Repo Scrutinizer Code Quality GitHub package.json dependency version (prod) GitHub package.json dependency version (dev) Build Status

SonarCloud Coverage Bugs

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
1.2.2

3 days ago

1.2.2-f94e96-dev

1 month ago

1.2.0

4 months ago

1.2.0-9c61e9-dev

4 months ago

1.2.0-1f04dd-dev

4 months ago

1.2.1

4 months ago

1.2.1-d4fe34-dev

4 months ago

1.2.0-b1f58a-dev

4 months ago

1.2.0-6f5abe-dev

4 months ago

1.2.0-08af65-dev

4 months ago

1.1.0-17fc35-dev

4 months ago

1.2.0-8e6dd9-dev

4 months ago

1.2.0-dc1a4e-dev

4 months ago

1.1.0

7 months ago

1.1.0-b29f4f-dev

7 months ago

1.1.0-6bd921-dev

7 months ago

1.0.4-f46b76-dev

10 months ago

1.0.2

11 months ago

1.0.3

11 months ago

1.0.2-dev

11 months ago

1.0.4-d5bc1b-dev

11 months ago

1.0.3-ea3fae-dev

11 months ago

1.0.2-0e4382-dev

11 months ago

1.0.3-3ab6bb-dev

11 months ago

1.0.3-7f6374-dev

11 months ago

1.0.1

1 year ago

1.0.0

1 year ago

0.0.0

1 year ago