A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Conexi贸n como inyectable y ejecutando un SELECT

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

Aportes 4

Preguntas 6

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Quienes trabajen con m煤ltiples motores de bases de datos relacionales, les recomiendo sequelize. Lo utilizo desde hace tiempo y la verdad funciona muy bien.

Esto es una mala practica la verdad me parece鈥 Lo mejor es colocarlo en useFactory y poder usarlo desde cada repository conectado a su identity correspondiente que es en s铆 una table de la db conectada.

驴Han probado Prisma ORM? 驴Que tal?

馃憦