¿Cuál es su opinión sobre las herramientas de inyección de dependencia del lado del servidor en node.js?

Consulte el paquete container-ioc npm. Básicamente es solo el marco angular DI.

caracteristicas:

  • Conocida API Angular DI.
  • Sin dependencias externas.
  • Control del tiempo de vida.
  • Contenedores jerárquicos.
  • Resuelve valores utilizando clases, fábricas y valores.
  • Mensajes de error descriptivos.
  • 97% de cobertura de prueba.

Aquí hay un ejemplo básico de uso:

importar {Injectable, Inject, Container} desde ‘container-ioc’;

interfaz IApplication {
run (): void;
}

interfaz IService {
servir (): vacío;
}

const TApplication = Symbol (‘IApplication’);

const TService = Símbolo (‘IService’);

@Inyectable ()
La aplicación de clase de exportación implementa IApplication {
constructor (servicio privado @Inject (TService): IService) {}

run (): void {
this.service.serve ();
}
}

@Inyectable ()
El servicio de clase de exportación implementa IService {
servir (): vacío {
// sirve
}
}

const container = nuevo contenedor ();

container.register ([
{token: TApplication, useClass: Application},
{token: TService, useClass: Service}
]);

aplicación const: IApplication = container.resolve (TApplication);

app.run ();

Aquí está el enlace contenedor-ioc

Hola, soy el autor de InversifyJS.

InversifyJS ahora está en beta.3 y estoy planeando publicar un candidato de lanzamiento para finales de este mes.

Algunas personas creen que los contenedores de IoC no tienen lugar en JavaScript, pero creo que los contenedores de IoC son necesarios en JavaScript y escribí un artículo al respecto: El estado actual de la inversión de dependencia en JavaScript. El artículo trata sobre el desarrollo front-end, pero veo que IoC en el back-end es aún más necesario.

Me gustaría pedirle que lo pruebe y vea si se ajusta a sus necesidades. Desarrollé inversifyJS porque no pude encontrar un IoC para JavaScript capaz de satisfacer mis necesidades.

La última versión admite muchos casos de uso:

  • Módulos del núcleo
  • Kernel middleware
  • Use clases, literales de cadena o símbolos como identificadores de dependencia
  • Inyección de propiedad
  • Inyección de valores constantes.
  • Inyección de constructores de clase.
  • Inyección de fábricas
  • Fábrica de automóviles
  • Inyección de proveedores (fábrica asíncrona)
  • Controladores de activación (utilizados para inyectar proxies)
  • Inyecciones múltiples
  • Enlaces etiquetados
  • Decoradores de etiquetas personalizadas
  • Enlaces nombrados
  • Enlaces contextuales
  • Excepciones amistosas (por ejemplo, dependencias circulares)

InversifyJS es un proyecto de código abierto y dirigido por la comunidad. Si necesita una función, solicítela en la página de problemas de GitHub y haré todo lo posible para implementarla.

Mi objetivo es crear un contenedor de IoC que brinde a la comunidad una gran experiencia de desarrollo. Por esta razón, no estoy trabajando solo en el contenedor IoC. También estoy trabajando en otras herramientas y utilidades de prueba.

En resumen, no puedo prometerle que InversifyJS es la mejor biblioteca de IoC para aplicaciones JS que existe, pero puedo prometerle que estamos trabajando duro para convertirnos en ella.