Aplicações desenvolvidas em Node.js, alicerçadas em frameworks, vêm ganhando muita popularidade devido a sua eficiência e facilidade durante a construção. Dentre os frameworks mais conhecidos, podemos citar o ExpressJS, o NestJS e o fastify.
Ao final desta leitura, você será capaz de desenvolver uma API do zero utilizando o framework NestJS para Node.js, que consome um banco de dados PostgreSQL, rodado em um container local através do Docker. A interação com o banco de dados será realizada pela biblioteca Prisma.
Containers
Containers são partições lógicas, fáceis de serem transportadas por diferentes máquinas, que podem conter uma aplicação, um banco de dados ou qualquer outra coisa executável em um sistema operacional.
Seu conceito remete à ideia de uma máquina virtual, porém é mais eficiente. Ao invés de se utilizar um sistema operacional para executar outros sistemas operacionais — que por sua vez executarão outros softwares — diferentes containers podem ser executados diretamente em um único sistema operacional, poupando muito recurso de hardware.
Para melhor entendimento da diferença entre os containers e máquinas virtuais, vide a imagem abaixo:
Perceba que cada máquina virtual possui seu próprio sistema operacional, que para se manter executando consome recursos além do necessário para executar a aplicação.
O container exclui esta necessidade de ter um sistema operacional à parte, reduzindo o consumo de recurso necessário para se manter ativo.
Docker
Docker é uma empresa que oferece diversas ferramentas relacionadas com a orquestração de containers. A mais usada entre elas é a Docker Compose, que serve justamente para definir e orquestrar containers de maneira fácil.
Quando eu citar Docker mais adiante neste artigo, estou me referindo à ferramenta e não à empresa, combinado?
NestJS
O Nest é um framework que permite a criação de aplicações server-side, combinando elementos de programação orientada a objetos, programação funcional e programação reativa funcional. Por de baixo dos panos, ele faz o uso do ExpressJS e permite uma compatibilidade com diversas bibliotecas.
Continue a leitura com um teste grátis de 7 dias
Assine API Playbook para continuar lendo esta publicação e obtenha 7 dias de acesso gratuito aos arquivos completos de publicações.