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

242
Vistas
Cómo crear un servicio CRUD genérico en Nodejs a través de TypeORM

Estoy intentando crear un servicio genérico que debería tomar una Entidad 'dada' para realizar operaciones CRUD básicas.

Hasta ahora, he intentado:

 export type UserEntity<E> = { new (): E } | Function; class AuthenticationService<E> { private userEntity: UserEntity<E>; constructor(userEntity: UserEntity<E>) { this.userEntity = userEntity; } async login(email: string, password: string) { // const user = await getRepository(this.userEntity).findOneOrFail({ email }); const user = await this.userEntity?.findOneOrFail({ email }); const validPassword = argon2.verify(user?.password, password); if (!validPassword) { throw new ErrorHandler(401, ErrorMessage.INVALID_EMAIL_PASSWORD); } const accessToken = JWTHelpers.generateToken(user, { secret: config.ACCESS_TOKEN_SECRET, expiry: '300s', }); const refreshToken = JWTHelpers.generateToken(user, { secret: config.REFRESH_TOKEN_SECRET, expiry: '1y', }); user.tokens = user.tokens.concat(refreshToken); await user.save(); Reflect.deleteProperty(user, 'password'); return { accessToken, refreshToken }; }

Este enfoque no parece funcionar y, como resultado, el compilador arroja varios tipos de errores, por ejemplo:

  1. Property 'findOneOrFail' does not exist on type 'UserEntity<E>'. Property 'findOneOrFail' does not exist on type 'Function'.

    Que se arroja de esta declaración: const user: E = await this.userEntity?.findOneOrFail({ email });

  2. Property 'password' does not exist on type 'NonNullable<E>'. - arrojado a: const validPassword = argon2.verify(user?.password, password);

Estoy muy abierto a sugerencias sobre la mejor manera de abordar / solucionar estos problemas.

Gracias por adelantado.

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