Esta API roda de maneira containerizada. Isso significa que os nossos arquivos dentro do diretório do projeto são copiados para dentro de um container docker para serem executados dentro do container.
Além do container da aplicação, também há um container de PostgresSQL que roda em paralelo. A máquina host não se comunica com o container do banco, apenas com o container da API para copiar os arquivos.
docker compose up --build
docker exec /twdo-backend /bin/bash (isso colocará você num terminal dentro do container. Dentro desse terminal, execute os comandos abaixo)
npx prisma generate
npx prisma migrate dev
docker compose up
docker exec /twdo-backend /bin/bash (isso colocará você num terminal dentro do container. Dentro desse terminal, execute o comando abaixo)
npx prisma migrate dev
Ao desenvolver uma nova feature, pode ser que pacotes precisem ser baixados. Para isso, execute:
yarn add <nomeDoPacote>
Caso seja uma dependencia de desenvolvimento, não esqueça da flag -D.
E a cada novo pacote adicionado, você precisará executar em seguida:
docker exec twdo-backend yarn install
O yarn add na sua máquina host atualiza o package.json da sua máquina host.
Quando há uma mudança em quaisquer arquivos da pasta do projeto (inclusive o package.json) da sua máquina host, o container copia quaisquer alterações para dentro da pasta do projeto dentro do container.
Porém, o pacote está apenas instalado na sua máquina host (o container não copia a pasta node_modules), e ainda precisará ser instalado no container. Por isso rodamos o yarn install dentro do container em seguida.
docker ps
docker compose down (ou um ctrl+c no terminal que estiver rodando)
<button
onClick={() =>
fetch("http://localhost:4001/users/register", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Vitor",
email: "vitor@email.com",
password: "123456",
}),
})
}
>
agr vai
</button>
<-->