Nest
Tutorial Nest: Decoradores en entidades
Nest TypeORM decoradores entidades: uso. Aprende a usar decoradores de entidades en Nest con TypeORM mediante ejemplos prácticos.
Aprende Nest GRATIS y certifícateUn decorador es un patrón de diseño que permite a los usuarios agregar responsabilidades adicionales a un objeto de manera dinámica.
En el contexto de la programación, en particular en TypeScript y NestJS, un decorador es una función especial que puede ser usada para extender la funcionalidad de clases, métodos, propiedades o parámetros.
Decoradores en entidades con TypeORM
Cuando se trabaja con bases de datos en NestJS, especialmente con TypeORM, se utilizan decoradores para definir y configurar entidades.
Estos decoradores permiten mapear clases TypeScript a tablas de bases de datos y establecer relaciones entre ellas.
Decoradores de entidad y columna
@Entity(): Marca una clase como una entidad de base de datos.
@Entity() export class User {}
@PrimaryGeneratedColumn(): Define una columna primaria autoincrementada.
@PrimaryGeneratedColumn() id: number;
@Column(...): Estos decoradores definen columnas en la base de datos y pueden aceptar opciones para especificar detalles como el tipo de datos, longitud, si es único, etc.
@Column({ type: 'varchar', length: 100 }) name: string;
Decoradores de relaciones
@OneToOne(): Establece una relación uno a uno entre dos entidades.
@OneToOne(type => Profile) profile: Profile;
@OneToMany() y @ManyToOne(): Establecen relaciones uno a muchos y muchos a uno.
@OneToMany(type => Photo, photo => photo.user) photos: Photo[]; // En otra entidad: @ManyToOne(type => User, user => user.photos) user: User;
@ManyToMany() y @JoinTable(): Establecen relaciones muchos a muchos.
@ManyToMany(type => Category) @JoinTable() categories: Category[];
Decoradores de índices y opciones adicionales
@Index(): Define un índice para una columna o un conjunto de columnas.
@Index("user_name_index", ["name"])
@Unique(): Define una restricción única para una columna.
@Column({ unique: true }) email: string;
@CreateDateColumn() y @UpdateDateColumn(): Crean columnas automáticas para rastrear las fechas de creación y actualización.
@CreateDateColumn() createdAt: Date; @UpdateDateColumn() updatedAt: Date;
@VersionColumn(): Crea una columna de versión para el control de concurrencia optimista.
@VersionColumn() version: number;
Decoradores de herencia
@Inheritance() y @DiscriminatorColumn(): Se usan para establecer estrategias de herencia, como la estrategia "Single Table" o "Table per Class".
@Entity() @Inheritance({ strategy: 'SINGLE_TABLE' }) @DiscriminatorColumn({ name: 'type', type: 'varchar' }) export class Content {}
Conclusión
Los decoradores proporcionan una manera de definir metadatos y modificar el comportamiento de las clases y sus miembros en NestJS. En el contexto de las entidades, los decoradores simplifican significativamente la tarea de mapear clases a tablas de bases de datos, permitiendo que la definición del modelo y la lógica estén estrechamente integradas en un solo lugar.
Ejercicios de esta lección Decoradores en entidades
Evalúa tus conocimientos de esta lección Decoradores en entidades con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Métodos GET en controladores
Método find en un servicio con repositorio
Desarrollo e inyección de servicios
Creación de entidades y tablas
Método DELETE en un controlador
Filtrados en consultas de repositorios
Método GET en un controlador
Estrategia de autenticación JwtStrategy
CRUD con repositorios
Método delete en un servicio con repositorio
API REST CRUD de entidad Restaurante con TypeORM
Creación de una entidad TypeORM
Crear y utilizar módulos
Métodos PUT en controladores
Iniciar sesión método de login
Configuración de TypeORM con MySQL
Gestión de errores en controladores
Decoradores en entidades
Instalación NestJS
Recibir y servir imágenes
Estrategia de autenticación JWT
Método PUT en un controlador
Comandos NestJS CLI
Método POST en un controlador
Login y registro
API REST CRUD de entidades Product y Manufacturer
Método save en un servicio con repositorio
Registro de usuarios
Métodos POST en controladores
Todas las lecciones de Nest
Accede a todas las lecciones de Nest y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Instalación Nestjs
Introducción Y Entorno
Comandos Nestjs Cli
Introducción Y Entorno
Métodos Get En Controladores
Controladores
Métodos Post En Controladores
Controladores
Métodos Put En Controladores
Controladores
Métodos Delete En Controladores
Controladores
Gestión De Errores En Controladores
Controladores
Recibir Y Servir Imágenes
Controladores
Desarrollo E Inyección De Servicios
Servicios E Inyección De Dependencias
Crear Y Utilizar Módulos
Módulos
Configuración De Typeorm Con Mysql
Typeorm
Creación De Entidades Y Tablas
Typeorm
Decoradores En Entidades
Typeorm
Crud Con Repositorios
Typeorm
Filtrados En Consultas De Repositorios
Typeorm
Registro De Usuarios
Autenticación
Iniciar Sesión Método De Login
Autenticación
Estrategia De Autenticación Jwtstrategy
Autenticación
Login Y Registro
Autenticación
Estrategia De Autenticación Jwt
Autenticación
Certificados de superación de Nest
Supera todos los ejercicios de programación del curso de Nest y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender el concepto de decoradores en NestJS.
- Explorar los decoradores utilizados en las entidades con TypeORM.
- Aprender a utilizar los decoradores en las entidades.