Introducción

1

Conexiones a Bases de Datos con Time OEM y NetsGIS

2

Integración de Datos con Next.js y Time ORM en Proyectos E-commerce

Database

3

Instalación de Docker en Windows, macOS y Ubuntu

4

Configuración de Postgres en Docker Compose

5

Conexión a Postgres en Docker: Terminal y PgAdmin

6

Conexión de NestJS a Postgres con Node Postgres

7

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

8

Conexión a Bases de Datos con Variables de Entorno en Node.js

TypeORM

9

Implementación de TypeORM con NestJS en Proyectos Node.js

10

Creación de Entidades en ORM para Tiendas Virtuales

11

Implementación del Patrón Repository en NestJS con TypeORM

12

Operaciones CRUD en ProductService usando TypeORM y Postgres

13

Cambio de Postgres a MySQL en Docker para CRUD de Productos

Migraciones

14

Configuración de Migraciones en Bases de Datos con TimeORM

15

Configuración y uso de migraciones con TimeORM y TypeScript

16

Ejecución y gestión de migraciones con Time1M en Node.js

17

Migraciones en bases de datos: agregar campos automáticamente

Relaciones

18

Relaciones 1 a 1 en Bases de Datos con TimeORM

19

Manipulación de Relaciones Uno a Uno en Controladores y Servicios

20

Relaciones Uno a Muchos en Bases de Datos con TypeORM

21

Gestión de Relaciones Uno a Muchos en Controladores de API

22

Relaciones Muchos a Muchos en Time1M: Creación y Manejo Práctico

23

Manipulación de Relaciones Muchos a Muchos en Controladores

24

Manipulación de Relaciones Muchos a Muchos con TimeORM en JavaScript

25

Relaciones Muchos a Muchos con Campos Agregados en TimeWareM

26

CRUD de órdenes de compra y gestión de ítems en NestJS

Consultas

27

Paginación de Productos con Limit y Offset en Controladores API

28

Filtrado de Precios con Rango Usando Between en Time Wareham

29

Indexación de Parámetros en Bases de Datos: Uso y Precauciones

30

Buenas prácticas de nombramiento en JavaScript y bases de datos

31

Serialización y Transformación de Datos en APIs con ClassTransformer

Migración a NestJS 9 y TypeORM 0.3

32

Actualización de dependencias en NEST y TimeWareM

33

Migración y ajustes en TimewareM 0.3: Cambios en métodos y servicios

34

Actualización de Migraciones en TimeWareM 0.3

Próximos pasos

35

Soluciones a referencias circulares en módulos NestJS

36

Persistencia de Datos con Time Ware M: Conexiones y Buenas Prácticas

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Conexión de NestJS a Postgres con Node Postgres

6/36
Recursos
npm i pg 
npm i @types/pg -D
// src/app.module.ts

import { Client } from 'pg';

const client = new Client({
  user: 'root',
  host: 'localhost',
  database: 'my_db',
  password: '123456',
  port: 5432,
});

client.connect();
client.query('SELECT * FROM tasks', (err, res) => {
  console.error(err);
  console.log(res.rows);
});

Aportes 12

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

like si también te asustaste con el sonido del minuto 1:08 jajaja

Si al momento de ejecutar el sistema les aparece un error como este error: la autentificaci�n password fall� para el usuario �root� una de las razones es que antes ya usamos postgres y tenemos el servicio corriendo en nuestro PC, para evitar ese conflicto podemos modificar el puerto que exponemos del contenedor docker, por ejemplo:

  postgres:
    image: postgres:13
    environment:
      - POSTGRES_DB=my_db
      - POSTGRES_USER=root
      - POSTGRES_PASSWORD=123456
    ports:
      - '5433:5432'  # 👈🏻Acá le decimos que dentro del contenedor el puerto que usará es el 5432 y para que nosotros usemos fuera del contenedor le decimo que exponga el puerto 5433
    volumes:
      - ./postgres_data:/var/lib/postgresql/data

Ahora debemos modificar nuestra conexión a la bd de la siguiente manera

// app.module.ts
const client = new Client({
  user: 'root',
  host: 'localhost',
  database: 'my_db',
  password: '123456',
  port: 5433, // 👈🏻 acá colocamos el puerto que estamos exponiendo del contenedor
});

De esta manera podemos seguir trabajando con nuestro contenedor, sin afectar al servicio postgres que teníamos anteriormente en nuestra PC.

Si vienes del futuro y estás siguiendo el curso con el repo del profesor, seguramente tendrás que hacer npm i [email protected] --legacy-peer-deps para instalar la dependencia

Para no dejar las contraseñas en el docker file se puede hacer esto:

  1. Crear una carpeta llama .env
POSTGRES_DB:db
POSTGRES_USER:postgres
POSTGRES_PASSWORD:12334
DATABASE_PORT:1000

PGADMIN_DEFAULT_EMAIL:[email protected]
PGADMIN_DEFAULT_PASSWORD:1233

Y en el docker compose se pose

version: '3.3'

services:
  postgresdb:
    image: postgres:13
    environment:
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${joddoc-8baxRi-sywzoz}
    ports:
      - '5432:5432'
    volumes:
      - ./postgres_data:/var/lib/postgresql/data


  pgadmin:
    image: dpage/pgadmin4
    environment:
     - PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL}
     - PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD}
    ports:
      - "5050:80"

Si alguien tiene el siguiente error cuando intenta conectar con la base de datos:
(node:18280) UnhandledPromiseRejectionWarning: error: password authentication failed foruser “root”

La solución en Windows es ir a los servicios, buscar el servicio con el nombre “postgresql-x64-13 - PostgreSQL Server 13” dar click derecho y parar (stop).

Hola amigos. Para los usan la siguiente version
node --version
v18.15.0

nest --version
10.1.8

node-postgre
8.11.1

Tenia problemas en la conexión cuando configuraba tal cual el prof. indicaba.

muestro mi configuracion docker-compose.yml

version: '3.3'
services:
  postgres:
    image:  postgres:14
    environment:
      - POSTGRES_DB=my_db_login
      - POSTGRES_USER=root
      - POSTGRES_PASSWORD=123456
    ports:
      - '5433:5432'
    volumes:
      - ./postgres_data:/var/lib/postgresql/data

  
  pgadmin:
    image:  dpage/pgadmin4
    environment:
      - PGADMIN_DEFAULT_EMAIL=root@admin.com
      - PGADMIN_DEFAULT_PASSWORD=root
    ports:
      - "5050:80"

  
y mi configuración del cliente:



const client = new Client({
user: ‘root’,
host: ‘localhost’,
database: ‘postgres’,
password: ‘123456’,
port: 5433,
});

client.connect();

client.query(‘SELECT NOW()’,(err,res)=>{
console.log(err);
console.log(res.rows);
});


Solo cambiando de my_db_login a postgres no me da error. Pero si quisiera agregar una nueva base de datos en mi mismo contenedor no se como lo llamaria desde el cliente. Esa es mi duda. Gracias  antemano


Estaba teniendo un error a la hora de conectar a Postgres y revisando me di cuenta que ya lo tenóa instalado localmente. Recomiendo revisar si les aparece el mismo error. No vaya a ser que ya tengan Postgres localmente y no conecte a Docker.

en mi caso sale este error

(node:18280) UnhandledPromiseRejectionWarning: error: password authentication failed for user "root"

no se cual sea el error ya que tengo todo igual
ahí dice sobre el password pero como dije tengo el mismo 123456 lo mismo el el archivo .yml

Quiza a alguien le haya pasado lo mismo

Top ediciones de video mas zarpadas 😎🔥

Sí te salio el error

error: la autentificaci�n password fall� para el usuario �root�

Puede deverse a:

  • El usuario de tu servidor no es root, sino postgres.

  • El puerto se encuentra ocupado con otro programa.

En mi caso me aparecía el siguiente error:

Error: connect ECONNREFUSED 127.0.0.1:5432
  at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1161:16) {
  errno: -111,   code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 5432

Para solucionarlo, tuve que cambiar el puerto de la configuracion de Postgres y agregar la red a la cual iba a estar:

version: '3.3'

services:
  postgres:
    container_name: postgres
    image: postgres:13
    environment:
     - POSTGRES_DB=my_db
     - POSTGRES_USER=root
     - POSTGRES_PASSWORD=123456
    ports:
      - "5432:5432"
    volumes:
      - ./postgres_data2:/var/lib/postgresql/data
    networks:
      - postgres
  pgadmin:
    image: dpage/pgadmin4
    environment:
      - [email protected]
      - PGADMIN_DEFAULT_PASSWORD=root
    ports:
      - "5050:80"
    networks:
      - postgres
networks:
  postgres:
    driver: bridge

en mi app.module.ts

const client = new Client({
	user: 'root',
	host:'localhost',
  password: '123456',
  database: 'my_db',
	port: 5432,
});

👏