Inyección de Dependencias en NETJS: Conexión a PostgreSQL

Clase 7 de 36Curso de NestJS: Persistencia de Datos con TypeORM

Resumen
// 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(); } }