image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF
Article image
Hector Velasquez
Hector Velasquez17/01/2023 15:30
Compartilhe

Criar encurtador de URL com o  NestJS

  • #Docker
  • #Node.js
  • #MongoDB

Vamos criar um sistema capaz de encurtar um link e que possa ser compartilhado pelos diversos canais de comunicação, para isso dividimos o projeto em 6 partes.

Índice

  1. Defina a estructura do proecto com Docker y NestJS
  2. Crie o módelo de negócio conectado ao mongoDB
  3. Carregar arquivos com o Multer
  4. Adicionar cachê com o Redis
  5. Adicionar documentação com o Swagger

Repositorio: https://github.com/hectorcanaimero/shortener

Tecnologias a usar.

NestJS é um framework back-end que ajuda a criar aplicativos eficientes, escaláveis e confiáveis sobre Node.js. O NestJS usa TypeScript por padrão e possui uma sintaxe semelhante ao Angular.

MongoDB é um banco de dados de documentos com a escalabilidade e a flexibilidade que você deseja, juntamente com as consultas e a indexação de que você precisa; o que podemos chamar de banco de dados NoSQL.

Redis é um banco de dados de estrutura de chave-valor na memória; É uma excelente opção para implementar caches na memória altamente disponíveis para diminuir a latência de acesso a dados, aumentar a produtividade e aliviar a sobrecarga de aplicativos e bancos de dados relacionais ou NoSQL.

Docker é um sistema operacional (ou runtime) para contêineres; ele funciona como um conjunto de produtos de plataforma como serviço que usam a virtualização no nível do sistema operacional para entregar software em pacotes chamados contêineres. Os contêineres são isolados uns dos outros e agrupam seus próprios softwares, bibliotecas e arquivos de configuração.

Criar ambiente de trabalho

Etapa 1. Instale o nestjs e criei o projeto.

# instala de forma global NestJS
npm install -g @nestjs/cli
# crie o proeto
nest new shortcut

Etapa 2. Configurar o Docker.

Nesse post não vou mostrar como instalar e configurar o docker, aqui mesmo e no Medium tem muitos artigos que falam sobre como configurar no Windows, Linux e OSX.

No diretório raiz do projeto vamos criar o arquivo Dockefile

# Imagem do Docker
FROM node:18-alpine3.15
# Instale o bash na imagem
RUN apk add --no-cache bash
# Instale globalmente na imagem NestJS
RUN npm i -g @nestjs/cli@9.0.0
# Atribuir o usuário node ao docker
USER node
# O diretório onde o projeto está instalado
WORKDIR /home/node/app

Agora vamos criar um arquivo start.sh na raiz do projeto, ele irá instalar as bibliotecas nestjs e executá-lo.

#!/bin/bash
# Instale as bibliotecas no projeto que está no Docker
npm install
# Execute o nestJS no modo de desenvolvimento
npm run start:dev

então damos a ele permissões de execução, usando o seguinte comando

chmod +x start.sh

agora criamos o arquivo docker-compose.yaml

version: '3.7'
services:
# Servicio da App
app:
  container_name: app-shortcut
  build: .
  entrypoint: ./start.sh
  volumes:
    - .:/home/node/app
  ports:
    - 3000:3000
  networks:
    - shorcutNet

networks:
shorcutNet:
  driver: bridge

Etapa 3. Execute nosso Docker Compose.

É o momento em que a mágica é feita, vamos executar docker-compose.yaml usando o seguinte comando:

docker-compose up -d --build

se tudo estiver Ok, executamod o log do serviço NestJS no. docker

docker logs -f app-shortcut

Agora que a estrutura e o ambiente de trabalho estão prontos para começar, no próximo post estaremos configurando o banco de dados com Docker e criando nosso modelo de negócios.

Compartilhe
Recomendados para você
Microsoft 50 Anos - Prompts Inteligentes
Microsoft 50 Anos - GitHub Copilot
Microsoft 50 Anos - Computação em Nuvem com Azure
Comentários (1)
Edney Landim
Edney Landim - 17/01/2023 17:14

muito bom