Inyección de Dependencias en NETJS: Conexión a PostgreSQL
Clase 7 de 36 • Curso de NestJS: Persistencia de Datos con TypeORM
Contenido del curso
- 3
Instalación de Docker en Windows, macOS y Ubuntu
01:35 - 4

Configuración de Postgres en Docker Compose
09:18 - 5

Conexión a Postgres en Docker: Terminal y PgAdmin
15:16 - 6

Conexión de NestJS a Postgres con Node Postgres
07:28 - 7

Inyección de Dependencias en NETJS: Conexión a PostgreSQL
10:49 - 8

Conexión a Bases de Datos con Variables de Entorno en Node.js
13:49
- 9

Implementación de TypeORM con NestJS en Proyectos Node.js
09:14 - 10

Creación de Entidades en ORM para Tiendas Virtuales
07:46 - 11

Implementación del Patrón Repository en NestJS con TypeORM
13:31 - 12

Operaciones CRUD en ProductService usando TypeORM y Postgres
13:35 - 13

Cambio de Postgres a MySQL en Docker para CRUD de Productos
17:28
- 18

Relaciones 1 a 1 en Bases de Datos con TimeORM
18:58 - 19

Manipulación de Relaciones Uno a Uno en Controladores y Servicios
10:28 - 20

Relaciones Uno a Muchos en Bases de Datos con TypeORM
10:36 - 21

Gestión de Relaciones Uno a Muchos en Controladores de API
10:27 - 22

Relaciones Muchos a Muchos en Time1M: Creación y Manejo Práctico
08:38 - 23

Manipulación de Relaciones Muchos a Muchos en Controladores
15:08 - 24

Manipulación de Relaciones Muchos a Muchos con TimeORM en JavaScript
19:09 - 25

Relaciones Muchos a Muchos con Campos Agregados en TimeWareM
16:41 - 26

CRUD de órdenes de compra y gestión de ítems en NestJS
30:07
- 27

Paginación de Productos con Limit y Offset en Controladores API
10:37 - 28

Filtrado de Precios con Rango Usando Between en Time Wareham
10:17 - 29

Indexación de Parámetros en Bases de Datos: Uso y Precauciones
02:56 - 30

Buenas prácticas de nombramiento en JavaScript y bases de datos
17:52 - 31

Serialización y Transformación de Datos en APIs con ClassTransformer
16:55
// src/database/database.module.ts
import { Client } from 'pg';
const client = new Client({ // 👈 client
user: 'root',
host: 'localhost',
database: 'my_db',
password: '123456',
port: 5432,
});
client.connect();
..
@Global()
@Module({
providers: [
...
{
provide: 'PG',
useValue: client, // 👈 provider as value
},
],
exports: ['API_KEY', 'PG'], // 👈 add in exports
})
export class DatabaseModule {}
// src/app.service.ts
import { Client } from 'pg';
@Injectable()
export class AppService {
constructor(
@Inject('PG') private clientPg: Client, // 👈 inject PG
...
) {}
getTasks() { // 👈 new method
return new Promise((resolve, reject) => {
this.clientPg.query('SELECT * FROM tasks', (err, res) => {
if (err) {
reject(err);
}
resolve(res.rows);
});
});
}
}
// src/app.controller.ts
@Controller()
export class AppController {
@Get('tasks') // 👈 new endpoint
tasks() {
return this.appService.getTasks();
}
}