Hola a todos, hoy os voy a explicar como podemos instalar typeorm en NestJS para manejar una base de datos MySQL.
TypeORM es un ORM (Object Relation Mapping), que permite mapear los objetos que creemos con NestJS y que se refleje en la base de datos.
Sino sabes como crear un proyecto en NestJS, te dejo un pequeño tutorial donde lo explico:
Necesitamos instalar las siguientes dependencias:
Necesitamos tener MySQL instalado. Sino lo tienes aqui te dejo como instalarlo:
En app.module, vamos a importar el módulo TypeOrmModule y llamaremos a su método forRoot()
Ahora, en la raíz del proyecto, crearemos un fichero llamado ormconfig.json con la siguiente estructura:
{ "type": "mysql", "host": "localhost", "port": 3306, "username": "root", "password": "root", "database": "example", "entities": ["dist/**/*.entity{.ts,.js}"], "synchronize": true }
Explicamos cada propiedad:
- type: tipo de SGBD, en nuestro caso mysql.
- host: donde se encuentra servidor.
- port: puerto de escucha de MySQL.
- username: nombre de usuario de MySQL.
- password: password del usuario de MySQL.
- database: nombre de la base de datos, tenemos que crearla.
- entities: ruta de los ficheros que debe recoger typeorm para mapear. Con esto lo que hará es que cada fichero .entity lo mapeará.
- synchronize: en caso de cambios sincroniza los cambios con la base de datos.
Recuerda que debemos crear la base de datos. Lo podemos hacer desde MySQL Workbech.
Le damos a aplicar y lo tenemos.
Solo nos faltaría crear un fichero .entity para que crear una tabla. lo normal seria crear un módulo y dentro su carpeta correspondiente su entity pero en este caso lo vamos a crear directamente en src, recordar que este donde este si termina en .entity.ts lo mapeará.
Os dejo un ejemplo:
import { Column, Entity, PrimaryGeneratedColumn } from "typeorm"; @Entity() export class Example { @PrimaryGeneratedColumn() id?: number; @Column({ type: String, nullable: false, length: 30 }) col1!: string; @Column({ type: Number, nullable: false }) col2!: number; @Column({ type: Date, nullable: false }) col3!: Date; }
Te dejo la documentación sobre las entidades aquí.
Cuando arrancamos nuestro proyecto, veremos que en la base de datos, nos habrá creado una tabla nueva.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta