Skip to content

Instantly share code, notes, and snippets.

@isaiasiotti18
Last active July 30, 2022 22:07
Show Gist options
  • Save isaiasiotti18/89d2cfe296d7004acd0bc2b94d995293 to your computer and use it in GitHub Desktop.
Save isaiasiotti18/89d2cfe296d7004acd0bc2b94d995293 to your computer and use it in GitHub Desktop.

CRUD com NodeJs + Typescript + Express + Postgresql + Prisma (Parte 2)

Nesse artigo vamos:

  • Startar aplicação;
  • Criar a conexão com o banco de dados
  • Criar entidade e tabela no banco de dado usando Prisma

Vamos começar Startando a aplicação usando o Express.

Vamos criar um arquivo server.ts dentro da pasta src. Depois vamos colocar o seguinte código inicial:

import express from 'express';

function bootstap() {
  const app = express();

  app.listen(8080, () => {
    console.log('App started 8080 port.');
  });
}

bootstap();

Agora podemos ir no terminal e colocar o seguinte código para startar nossa aplicação

npm run dev:server

Isso fará que a nossa aplicação seja iniciada e agora toda alteração que for feita no código a nossa aplicação será reiniciada automaticamente.

Agora vamos iniciar a nossa conexão com o banco de dados.

Vamos criar uma banco de dados usando Docker. Não irei explicar aqui como que faz, porém separei um tutorial que ensina passo a passo como fazer isso >> LINK <<

Depois de você criar o seu banco de dados, precisamos fazer a conexão com ele pela aplicação usando o Prisma.

É bem simples, então vamos lá!!! É só seguir os passos abaixo:

Primeiro vamos baixar o dotenv "npm install dotenv" o dotenv serve para criar variáveis de ambiente

Agora vamos criar um arquivo .env na raiz do nosso projeto.

Vamos criar uma variável de ambiente com a seguinte url:

DATABASE_URL="postgresql://USUARIO:SENHA@localhost:5432/DATABASE?schema=SCHEMA"

Você vai substituir pelos nomes que você deu quando criou o banco de dados usando o docker

  • "USUARIO";
  • "SENHA";
  • "5432" é a porta padrão usada pelo postgres;
  • "DATABASE";
  • "SCHEMA"

O meu vai ficar assim:

DATABASE_URL="postgresql://isaiasiotti:senha@localhost:5432/crudnodejs?schema=public

O Prisma consome essa variável para fazer a conexão com o banco de dados. Agora no terminal você vai digitar:

npx prisma init

E vai perceber que foi criado na raiz do projeto uma pasta chamada prisma com um arquivo schema.prisma esse é o conteúdo do arquivo:

configuração inicial prisma

Percebe que ele está consumindo a variável de ambiente que criamos DATABASE_URL

Agora para finalizar vamos construir nossa tabela no banco e entidade usando o prisma.

Quais serão os atributos da nossa entidade Produto?

  • codigo
  • nome
  • descricao
  • marca
  • categoria
  • preco

Schema Produtos

Perceba que, marca e categoria poderiam ser outras entidades também que se relacionam com produto, entretanto não farei isso para que não se extenda muito, porém você pode futuramente fazer isso para ir treinando.

Dá uma olhadinha na documentação do Prisma >> DOCUMENTAÇÃO <<

Ela é bem completa!

Agora no terminal você vai digitar:

npx prisma migrate dev

Vai pedir que você nomeie essa migrate e após isso você pode perceber que vai ser gerado uma pasta chamada migrations com uma outra pasta e dentro dessa outra pasta haverá um arquivo SQL. Agora no terminal você vai digitar: npx prisma migrate dev run para que essas alterações sejam feitas no banco de dados.

Você pode usar um gerenciador de banco de dados da sua preferência eu uso o dbeaver para verificar as mudanças, ou também você pode usar o próprio prisma, é só digitar no terminal npx prisma studio e vai ser aberto uma página no navegador.

Prontinho! Mais uma parte finalizada! Na parte 3 vamos finalizar nosso crud criando as rotas e funções do nosso CRUD. Até lá!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment