Guia Prático: Aprenda a Construir uma API Node.js Desacoplada
Zoranildo Santos
Posted on July 26, 2023
O intuito dessa série de artigos é mostrar na prática como criar e estruturar inicialmente uma aplicação Node.js o mais desacoplado possível com typescript usando conceitos de S.O.L.I.D e Clean Architecture. Ao final teremos uma api onde poderemos mudar facilmente por exemplo de express para fastify, prisma para typeorm, postgresql para mongoDb mudando apenas a variável de ambiente. Acompanhe essa série e verás.
Nesse primeiro artigo vamos iniciar o projeto e configurar o typescript.
Criando o projeto:
Vamos iniciar o projeto usando o comando abaixo que irá gerar o arquivo package.json
. Em qual local vai ficar o projeto na sua máquina é de sua escolha.
yarn init -y
Instalando como devDependencies as seguintes bibliotecas:
yarn add @types/node tsup tsx typescript -D
Qual a utilidade de cada pacote:
@types/node
: biblioteca que fornece definições de tipos (TypeScript) para os módulos nativos do Node.js. Ela é usada em projetos TypeScript quando se deseja obter suporte para a verificação de tipos.
tsx
: biblioteca utilizada para executar arquivos TypeScript (com extensão .ts) diretamente no Node.js, sem a necessidade de compilar previamente os arquivos para JavaScript (extensão .js). O pacote tsx foi aprimorado com esbuild
para executar arquivos TypeScript e ESM.
tsup
: é uma ferramenta de empacotamento (bundling) e compilação para projetos TypeScript. Ela facilita a criação de pacotes JavaScript a partir do código TypeScript e é uma alternativa mais simples e minimalista comparada a ferramentas mais complexas de empacotamento, como o Webpack e Rollup.
typescript
: é uma linguagem(ou preset) para JavaScript. O TypeScript adiciona tipos opcionais ao JavaScript que oferecem suporte a ferramentas para aplicativos JavaScript de grande escala para qualquer navegador, para qualquer host, em qualquer sistema operacional. O TypeScript é compilado para JavaScript legível e baseado em padrões.
Configurando o typescript:
- Crie na raiz do projeto um arquivo
tsconfig.json
- Adcione ao arquivo o seguinte código
{
"compilerOptions": {
"target": "es2017",
"strictNullChecks": true,
"module": "commonjs",
"moduleResolution": "node",
"baseUrl": "./src",
"rootDir": "./",
"outDir": "./dist",
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"strict": true,
}
}
Crie na raiz do projeto o arquivo .gitignore
com o seguinte conteúdo:
node_modules/
No final desse primeiro artigo o projeto deverá ter a estrutura abaixo:
Nesse artigo ficamos por aqui. No próximo artigo vamos codar dois server um com fastify e outro com express e alternar entre um e outro mudando apenas uma variável de ambiente.
Posted on July 26, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.