Curso NestJS for Azure: #1 HelloWord

Cláudio Rapôso
6 min readJun 5, 2024

--

Se há algo que a experiência de passar por diversos projetos me ensinou é que a escalabilidade e a flexibilidade são essenciais para o sucesso de qualquer aplicativo. E para alcançar essas características, muitos desenvolvedores estão recorrendo à combinação poderosa do NestJS e do Microsoft Azure. Neste primeiro artigo que faz parte do conteúdo escrito e será refletido em vídeo do curso“NestJS for Azure” onde vamos explorar o básico: o que é o Framework, como configurar uma conta de teste no Azure, quais são os pré-requisitos para a melhor experiência e como criar um projeto padrão.

Video-aula:

O Que é NestJS?

NestJS é um framework para construção de aplicativos web eficientes, escaláveis e confiáveis em Node.js. Ele utiliza os conceitos e padrões de design familiares aos desenvolvedores Angular, o que o torna uma escolha popular para aqueles que já trabalham com o Angular ou desejam aproveitar sua familiaridade.

O NestJS é construído em cima do Express.js, porém podemos usar o Fastify, fornecendo uma estrutura robusta e bem organizada para o desenvolvimento de aplicativos. Ele oferece suporte completo para TypeScript, o que significa que você pode aproveitar todos os recursos desse superset do JavaScript, incluindo tipagem estática e outras funcionalidades avançadas.

Um das características que me fez apaixonar por esse framework é que o NestJS promove a arquitetura modular e oferece uma série de recursos poderosos, como injeção de dependência, suporte a WebSocket, validação de dados, entre outros. Sua abordagem modular e altamente testável torna-o uma escolha excelente para construir aplicativos complexos e escaláveis.

Configurando uma Conta de Teste no Azure

Antes de começarmos nossa jornada com o NestJS for Azure, é crucial configurar uma conta de teste na plataforma. Felizmente, a Microsoft oferece um generoso período de teste gratuito que permite explorar os recursos e funcionalidades do Azure sem custo inicial.

Para configurar sua conta de teste no Azure, siga estes passos simples:

  • Acesse o site do Azure (azure.microsoft.com) e clique em “Iniciar Grátis” ou “Comece grátis”.
  • Siga as instruções para criar uma conta usando seu endereço de e-mail ou uma conta da Microsoft existente.
  • Após criar sua conta, você será direcionado para o portal do Azure, onde poderá explorar os diversos serviços e recursos oferecidos.
  • Para começar a usar os serviços, é necessário configurar um método de pagamento. No entanto, você não será cobrado até que seu período de teste gratuito expire e você opte por atualizar para uma assinatura paga.

Com sua conta de teste configurada, você está pronto para começar a explorar o mundo do Azure e integrá-lo com seus aplicativos NestJS.

Pré-Requisitos para uma Experiência completa

Antes de mergulhar de cabeça no NestJS for Azure, é importante ter alguns conhecimentos básicos. Aqui estão alguns pré-requisitos que ajudarão você a ter a melhor experiência possível:

  1. Conhecimento de TypeScript: Como o NestJS é escrito em TypeScript, é fundamental ter uma compreensão básica dessa linguagem. Se você ainda não está familiarizado com TypeScript, recomendo dedicar algum tempo para aprender seus conceitos fundamentais.
  2. Experiência com Node.js: Embora o NestJS abstraia muitos detalhes do Node.js, é útil ter uma compreensão sólida dessa plataforma de desenvolvimento. Certifique-se de estar confortável com os conceitos básicos de Node.js, como módulos, pacotes npm e manipulação de eventos assíncronos.
  3. Conhecimento de APIs RESTful: O NestJS é frequentemente usado para construir APIs RESTful, portanto, é útil entender os princípios por trás desse estilo de arquitetura de software. Isso inclui conceitos como rotas, métodos HTTP e formatos de dados (como JSON).
  4. Familiaridade com Conceitos de Nuvem: Embora não seja estritamente necessário, ter uma compreensão básica dos conceitos de computação em nuvem será útil ao trabalhar com o Azure. Isso inclui noções como infraestrutura como serviço (IaaS), plataforma como serviço (PaaS) e serviços gerenciados.

Com esses pré-requisitos em mente, você estará bem preparado para aproveitar ao máximo sua jornada com o NestJS no Azure.

Criando o Projeto Padrão

Agora que configuramos nossa conta de teste no Azure e revisamos os pré-requisitos necessários, é hora de criar nosso primeiro projeto NestJS. Felizmente, o Nest CLI (Command Line Interface) torna esse processo incrivelmente simples.

Passo 1: Instalando o NestJS CLI

Execute o comando abaixo para instalar o NestJS CLI globalmente:

npm install -g @nestjs/cli

Passo 2: Criando um Novo Projeto

Com o CLI instalado, podemos criar um novo projeto NestJS utilizando o seguinte comando:

nest new primeiro-projeto
Execução do comando
Criação do projeto

Passo 3: Estrutura do Projeto

Após a criação do projeto, você verá a seguinte estrutura de diretórios:

primeiro-projeto
├── src
│ ├── app.controller.ts
│ ├── app.controller.spec.ts
│ ├── app.module.ts
│ ├── app.service.ts
│ └── main.ts
├── test
│ ├── app.e2e-spec.ts
│ └── jest-e2e.json
├── .eslintrc.js
├── .prettierrc
├── nest-cli.json
├── package.json
├── tsconfig.build.json
└── tsconfig.json

Passo 4: Entendendo os Arquivos

  • src/main.ts: O ponto de entrada da aplicação. Aqui, a aplicação NestJS é inicializada.
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

/**
* Inicializa o aplicativo NestJS.
* @returns Uma Promise que resolve quando o aplicativo é inicializado.
*/
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}

bootstrap();
  • src/app.module.ts: O módulo raiz da aplicação. Módulos são uma peça fundamental na arquitetura do NestJS.
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';

/**
* Módulo principal da aplicação.
*/
@Module({
imports: [], // Aqui você pode adicionar quaisquer módulos importados
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
  • src/app.controller.ts: Um controlador de exemplo. Controladores lidam com as requisições HTTP e retornam respostas ao cliente.
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';

/**
* Controlador principal da aplicação.
*/
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}

/**
* Rota para obter uma saudação.
* @returns Uma string contendo uma saudação.
*/
@Get()
getHello(): string {
return this.appService.getHello();
}
}
  • src/app.service.ts: Um serviço de exemplo. Serviços são responsáveis pela lógica de negócios.
import { Injectable } from '@nestjs/common';

/**
* Serviço responsável por fornecer a mensagem de saudação.
*/
@Injectable()
export class AppService {
/**
* Retorna a mensagem de saudação.
* @returns Uma string contendo a mensagem de saudação.
*/
getHello(): string {
return 'Hello World!';
}
}

Passo 5: Executando o Projeto

Para executar a aplicação, navegue até o diretório do projeto e utilize o comando:

cd primeiro-projeto
npm run start

Você verá a aplicação rodando no endereço http://localhost:3000.

Iniciando o servidor
Servidor iniciado

Conclusão

Esse framework é excelente para poder construir aplicações server-side robustas e escaláveis com facilidade. Este tutorial introduziu o NestJS e mostrou como criar um projeto padrão. Com esse curso você aprenderá a aproveitar todo o potencial do NestJS, integrado com as poderosas ferramentas e serviços da Microsoft Azure, para construir soluções completas e escaláveis na nuvem. Prepare-se para elevar suas habilidades de desenvolvimento ao próximo nível!

--

--

Cláudio Rapôso

Microsoft MVP | Software Architect | Teacher | React | React Native | Node | Autor do Livro NestJS: Do Zero até a primeira API | MCT | 12x Msft | 2x AWS