DEV Community

Edgar Joaquin
Edgar Joaquin

Posted on

Arquitectura limpia en proyecto de Nodejs + Typescript + MongoDB

Estructura

├── api
│ ├─── controllers
│ │ ├─── usuarios.controller.ts
│ │ ├─── publicaciones.controller.ts
│ │ ├─── seguidores.controller.ts
│ │ ├─── ...
│ ├─── middlewares
│ │ ├─── auth.middleware.ts
│ │ ├─── error.middleware.ts
│ │ ├─── ...
│ ├─── routes
│ │ ├─── usuarios.routes.ts
│ │ ├─── publicaciones.routes.ts
│ │ ├─── seguidores.routes.ts
│ │ ├─── ...
│ ├─── services
│ │ ├─── usuarios.service.ts
│ │ ├─── publicaciones.service.ts
│ │ ├─── seguidores.service.ts
│ │ ├─── ...
│ ├─── utils
│ │ ├─── utils.ts
│ ├─── index.ts
├── application
│ ├─── config
│ │ ├─── app.config.ts
│ │ ├─── database.config.ts
│ │ ├─── ...
│ ├─── models
│ │ ├─── usuario.model.ts
│ │ ├─── publicacion.model.ts
│ │ ├─── seguidor.model.ts
│ │ ├─── ...
│ ├─── repositories
│ │ ├─── usuarios.repository.ts
│ │ ├─── publicaciones.repository.ts
│ │ ├─── seguidores.repository.ts
│ │ ├─── ...
│ ├─── services
│ │ ├─── usuarios.service.ts
│ │ ├─── publicaciones.service.ts
│ │ ├─── seguidores.service.ts
│ │ ├─── ...
│ ├─── utils
│ │ ├─── utils.ts
│ ├─── index.ts
├── domain
│ ├─── entities
│ │ ├─── usuario.entity.ts
│ │ ├─── publicacion.entity.ts
│ │ ├─── seguidor.entity.ts
│ │ ├─── ...
│ ├─── useCases
│ │ ├─── usuarios.usecase.ts
│ │ ├─── publicaciones.usecase.ts
│ │ ├─── seguidores.usecase.ts
│ │ ├─── ...
│ ├─── index.ts
├── infrastructure
│ ├─── adapters
│ │ ├─── database.adapter.ts
│ │ ├─── ...
│ ├─── database
│ │ ├─── index.ts
│ ├─── repositories
│ │ ├─── usuarios.repository.ts
│ │ ├─── publicaciones.repository.ts
│ │ ├─── seguidores.repository.ts
│ │ ├─── ...
│ ├─── utils
│ │ ├─── utils.ts
│ ├─── index.ts
├── index.ts
├── package.json
├── tsconfig.json

Explicación:

api: Contiene los controladores, middlewares y rutas de la API.

application: Contiene la configuración de la aplicación,

modelos, repositorios, servicios y utilidades.

domain: Contiene las entidades y casos de uso del dominio de la aplicación.

infrastructure: Contiene los adaptadores, la base de datos y los repositorios de la infraestructura.

index.ts: Archivo principal que inicia la aplicación.

package.json: Contiene las dependencias del proyecto.

tsconfig.json: Contiene la configuración del compilador TypeScript.

Consideraciones

Esta es una estructura de archivos básica, puede modificarse según las necesidades específicas del proyecto.

Se recomienda usar un contenedor de dependencias para inyectar las dependencias en las diferentes clases.

Se pueden usar herramientas como NestJS para facilitar la implementación de Clean Architecture.

Top comments (0)