Mejores Prácticas de Modularidad
Dirección de importación: rutas → casos de uso → dominio. Estas prácticas mantienen los código base de Node.js testeables y listos para cambios de framework o persistencia.
Busca en todas las páginas de la documentación
Dirección de importación: rutas → casos de uso → dominio. Estas prácticas mantienen los código base de Node.js testeables y listos para cambios de framework o persistencia.
express, fastify, @nestjs/*, prisma, ioredis.infrastructure → application → domain. Nunca dominio → infraestructura.infrastructure/ de pares.dependency-cruiser o ESLint para fallar importaciones prohibidas.shared/.export * from './infrastructure'.OrderGodService.AppError). El mapeador HTTP central traduce los códigos.findById, no findUnique.OrderRepository.ordersRouter(deps) para inyección.OrdersService gorda.req.body con Zod en el borde HTTP antes de execute().routes.ts, use-cases/, repos/ opcional es suficiente. Carpetas hexagonales completas cuando aparece el segundo adaptador.
El middleware de autenticación puede adjuntar user a la solicitud. La autorización de negocio sigue en el caso de uso.
Extrae un caso de uso por PR. La ruta llama al nuevo caso de uso; elimina la lógica en línea antigua cuando las pruebas pasen.
Los tipos explícitos en el límite del caso de uso ayudan. Los DTOs HTTP pueden diferir de las entidades de dominio a través de funciones de mapeo.
Las funciones execute(deps, input) funcionan. Mantén las mismas reglas de importación.
import { prisma } from '../lib/prisma' dentro de los manejadores de rutas.
El paquete de esquema está bien; cada servicio es dueño del adaptador de repositorio, sin llamadas compartidas de Prisma desde las rutas.
Los resolvers son adaptadores: llaman a casos de uso, no incrustan SQL.
scripts/ puede ser flexible. El código de producción src/ sigue esta lista.
No para un MVP de la primera semana si un ticket de deuda técnica rastrea la extracción antes del escuadrón #2.
Versiones de la pila: Esta página fue escrita para Node.js 24.18.0 (LTS Activo), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 y NestJS 11.
Revisado por Chris St. John·Última actualización: 16 jul 2026