Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

134
Vistas
¿Cuál es el mejor método (si lo hay) para importar un conjunto de funciones en un módulo?

Estoy tratando de resolver esto:

Tengo un módulo, digamos "usuarios", para el cual tengo un servicio con operaciones básicas de base de datos (buscar, encontrarMuchos, guardar, etc.).

Quiero crear más módulos que tengan las mismas operaciones básicas de base de datos, pero no quiero tener que volver a escribirlos todos.

Para facilitar las cosas, tengo estas 2 funciones en un archivo utils:

 export async function find<T extends Model>(model: T, query, options?): Promise<T> { return model.find(query) }

y

 export async function findOne<T extends Model>(model: T, query, options?): Promise<T> { return model.findOne(query) }

¿Cómo puedo hacerlo para importar cada una de estas funciones a una clase (usando decoradores de TypeScript u otra magia de TS)?

quiero tener algo asi

 import { attachAllBasicDatabaseMethods } from "./model-utils/operations" export class UserController { @attachAllBasicDatabaseMethods() private constructor() {} }

entonces en mi controlador puedo usar un método como este:

 async getSomeUsers() { const users = await this.findMany(UserModel, this.query, this.options); return users; }

La idea del decorador es algo en lo que he pensado, pero sé que hay otros métodos para resolver esto.

O mejor: usar ese decorador con el modelo como parámetro vincula automáticamente el modelo a los métodos, por lo que puedo usar this.find(this.query, this.options)

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda