Skip to content

bernardbr/express-postgresql-docker-example

Repository files navigation

API Node.js/TypeScript + Postgres (Docker)

Projeto de exemplo de uma API Node.js (TypeScript) conectada a um banco de dados PostgreSQL, ambos rodando em contêineres Docker.

Tecnologias

  • Node.js + Express + TypeScript
  • PostgreSQL
  • Docker + Docker Compose

Pré-requisitos

  • Docker Desktop (que inclui docker e docker-compose).

Como Rodar a Aplicação

Não é preciso instalar npm localmente. O Docker cuida de tudo.

1. Crie o arquivo .env

Na raiz do projeto, crie um arquivo chamado .env com o seguinte conteúdo:

# App
PORT=3000

# Database
DB_USER=postgres
DB_PASSWORD=challengepwd
DB_NAME=challenge_db
DB_PORT=5432
DB_HOST=db

2. Suba os Contêineres

No seu terminal, na raiz do projeto, rode:

docker-compose up --build -d
  • --build: Constrói a imagem da API (só é necessário na primeira vez ou se mudar o código).
  • -d: Roda em segundo plano.

O Docker irá baixar o Postgres, construir a API (instalando as dependências npm dentro do contêiner) e iniciar os dois serviços.

Como Testar

Após os contêineres iniciarem, acesse este endpoint no seu navegador ou terminal:

curl http://localhost:3000/api/produtos

Resultado Esperado (JSON):

[
  {
    "id": 1,
    "nome": "Laptop",
    "preco": "3500.00"
  },
  {
    "id": 2,
    "nome": "Mouse",
    "preco": "150.50"
  },
  {
    "id": 3,
    "nome": "Teclado",
    "preco": "299.90"
  }
]

Como Parar a Aplicação

Para parar todos os contêineres:

docker-compose down

Para parar e deletar os dados do banco (para recomeçar do zero):

docker-compose down -v

Feito com ❤️ por Bernardo Esbérard

About

Exemplo de como conectar uma API Node.js (TypeScript) a um banco Postgres usando Docker Compose.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published