DEV Community

Cover image for Iniciando um projeto NodeJs , Express com Typescript
Rogerio Orioli
Rogerio Orioli

Posted on • Updated on

Iniciando um projeto NodeJs , Express com Typescript

Olá galera hoje estou iniciando uma série de posts com o tema Node Js com Typescript. Nesse primeiro post iniciaremos o projeto e toda sua estrutura inicial . Vamos nessa !

Video Tutorial

Iniciando um projeto NodeJs , Express com Typescript

Parte 1 - Criando o projeto

Vamos abrir nosso terminal e digitar .

mkdir nodets 
cd nodets
Enter fullscreen mode Exit fullscreen mode

Agora temos uma pasta para exclusiva do nosso projeto e nosso próximo passo e iniciar uma aplicação node como o seguinte comando.

   yarn init -y 
Enter fullscreen mode Exit fullscreen mode

se preferir pode usar o npm

   npm init -y 
Enter fullscreen mode Exit fullscreen mode

Agora temos um arquivo que se chama package.json
esse arquivo contém e salva as dependencias que o projeto nescessita e tambem os scripts que o Nodejs executa depois que nós o definimos .

no terminal escreva :


cat package.json 

Enter fullscreen mode Exit fullscreen mode

teremos o seguinte retorno

{
  "name": "nodets",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT"
}
Enter fullscreen mode Exit fullscreen mode

Part 2 instalando as dependências

Toda aplicação necessita de pacotes específicos conforme a necessidade do escopo do projeto, no nosso caso iremos instalar o Express .

O Express é um framework que irá nos auxiliar na criação de rotas, tratamentos de erros e com os verbos HTTP (get, put , update e delete ) entre outras facilidades .

No terminal escreva :


yarn add express && yarn add -D @types/express

Enter fullscreen mode Exit fullscreen mode

Estamos instalando o Express e as definições de typos do Express porque nosso projeto será feito em typescript e requer
typagem .

feito isso escreva no terminal novamente


cat package.json 

Enter fullscreen mode Exit fullscreen mode

teremos o seguinte retorno

{
  "name": "nodets",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "express": "^4.17.1"
  },
  "devDependencies": {
    "@types/express": "^4.17.11"
  }

Enter fullscreen mode Exit fullscreen mode

Perceba que agora temos duas novas propriedades uma dependências que são as dependências do projeto e a outra é devDepedencies que são as dependências utilizadas para desenvolvimento no yarn usamos a flag -D e no npm utilizamos a flag --save-dev para diferenciarmos as dependências de desenvolvimento

Agora já temos o Express instalado vamos adicionar o suporte a Typescript na nossa aplicação, iremos instalar o TypeScript como dependência de desenvolvimento.

No terminal escreva :

  yarn add -D typescript

Enter fullscreen mode Exit fullscreen mode

Perceba que no nosso arquivo package.json em DevDepedencies temos 2 propriedades .

 "devDependencies": {
    "@types/express": "^4.17.11",
    "typescript": "^4.2.4"
  }
Enter fullscreen mode Exit fullscreen mode

Parte 2 Adicionando Suporte ao Typescript

Com o Express e o TypeScript instalados precisamos criar um arquivo de configuração do Typescript esse arquivo terá algumas configurações para escrevermos nosso código em Typescript e ele converter para Javascript quando iremos fazer uma compilação (buildar) e deixar nossa aplicação na linguagem que o servidor entenda que no caso é o Javascript.

Vamos criar esse arquivo de configuração .

No terminal escreva :


yarn tsc --init

Enter fullscreen mode Exit fullscreen mode

esse comando criou um arquivo de json de configuração chamado : tsconfig.json.

Agora vamos Falar de estrutura inicial de pastas depois voltamos ao novo tsconfig

Abra seu Projeto no seu editor de escolha eu vou usar o Vs Code .

Criaremos duas pastas com nome do src e dist a pasta src será a pasta principal da aplicação e a pasta dist será o nosso código compilado em JavaScript

Alt Text

Na pasta src escreveremos todos nossos códigos em TypeScript .

No seu editor dentro da pasta src crie um arquivo server.ts

Alt Text

No arquivo server.ts escreva o código abaixo será nosso inicio para entendermos algumas coisas .


import express from 'express'

import { Router, Request, Response } from 'express';

const app = express();

const route = Router()

app.use(express.json())

route.get('/', (req: Request, res: Response) => {
  res.json({ message: 'hello world with Typescript' })
})

app.use(route)


app.listen(3333, () => 'server running on port 3333')

Enter fullscreen mode Exit fullscreen mode

Perceba que usamos Import definimos typagems nos parâmetros da Rota essa é uma pequena diferença entre utilizar o TypeScript ao invés do Javascript . O TypeScript é um super set pra o JavaScript que nos ajuda a cometer menos erros e sermos mais organizados e mais fácil de debbugar, pode parecer Mais verboso no inicio mas com o tempo de adaptação verá que é bem mais produtivo .

Parte 3 Editando o tsconfig.json

Iremos configurar duas propriedades na configuração uma será a pasta de raiz do projeto e a outra a pasta onde irá todo código todo código JavaScript Gerado .

Deverá ficar assim o Arquivo :

{
 "outDir": "./dist",
 "rootDir": "./src"
}
Enter fullscreen mode Exit fullscreen mode

Atribua a pasta Dist ao outDir e pasta src ao rootDir

com isso já podemos fazer nossa primeiro teste e ver se está funcionando o typeScript gerando o JavaScript .

No terminal escreva

 yarn tsc 
Enter fullscreen mode Exit fullscreen mode

Olhe em seu Editor e perceba que ele gerou um código Javascript na pasta dist 👏🏻 👏🏻 👏🏻 👏🏻, ótimo já estamos com o TypeScript configurado.

Alt Text

Parte 4 Subindo o servidor e escutando as alterações

Agora nós podemos configurar nossa aplicação para enquanto codamos ela se auto reinicia e assim podemos trabalhar sem a necessidade de ficar subindo toda a hora a aplicação
No terminal escreva

 yarn add -D ts-node-dev

Enter fullscreen mode Exit fullscreen mode

Esse pacote permita escutar as alterações dos arquivos Typescript em tempo real .

Depois de instalado vamos ao nosso package.json e adicionaremos essas propriedades .

"scripts": {
  "dev": "ts-node-dev --inspect --transpile-only --ignore-watch node_modules src/server.ts",
  "build": "tsc"
},
Enter fullscreen mode Exit fullscreen mode

o Script dev esta escutando em tempo real as alterações no nosso server.ts que é o arquivo principal que carrega toda os demais módulos da aplicação e também definimos para ignorar todos os arquivos que estão na pasta node_modules isso ganhamos performance e também não há necessidade de alterarmos esses arquivos.

O Script build ele simplesmente gera nossa aplicação TypeScript para JavaScript no diretório dist que foi toda a configuração que fizemos na etapa anterior .

Agora é so ir ao terminal e executar


yarn dev 

Enter fullscreen mode Exit fullscreen mode

abra seu navegador e pronto sua aplicação e ambiente de desenvolvimento está pronto 😻 !

Alt Text

É isso espero que gostem , no próximo post pretendo iniciar uma aplicação com rotas e controllers com TypeScript

Até mais ! Obrigado.

Top comments (7)

Collapse
 
andrecastelo profile image
André Castelo

Boa! Uma única coisa que eu mudaria - o pacote ts-node-dev não é uma boa, ele é rápido mas não dá pra confiar. Não tem checagem de tipo e muitas vezes ele não atualiza corretamente. Tem três alternativas boas pra usar ao invés dele:

  • ts-node + swc + nodemon
  • ts-node + nodemon, com transpileOnly no ts-node
  • nodemon + tsc --incremental

mais info aqui -> stackoverflow.com/questions/379794...

Collapse
 
alexalannunes profile image
Alex Alan Nunes

sensacional

Collapse
 
moniquealtero profile image
Monique Altero

Ficou ótimo, consegui fazer em 5 minutos!

Collapse
 
luscas profile image
Lucas

Show!

Collapse
 
netogermias profile image
Neto Geremias

Cara valeu, não deixe de postar mais

Collapse
 
gustavoph profile image
Gustavoph

Excelente post Rogerio, irá me ajudar muito a iniciar com typescript!

Collapse
 
rogeriorioli profile image
Rogerio Orioli

show feliz em ajuda-lo !