Consumo de APIs: Dominando Fetch e Axios em JavaScript
Express.js: Guia Completo para Criar Apps Escaláveis
Neste tutorial, vamos explorar Express.js, um framework minimalista para criação de aplicações web no ecossistema Node.js
Introdução ao Node.js: Servidor e FerramentasDescubra como dominar o Node.js e criar servidores HTTP. Aprenda a instalar, configurar e utilizar o NPM, além de aplicar práticas no desenvolvimento web.. A proposta aqui é guiar você em uma jornada narrativa e prática, mostrando os principais recursos e funcionalidades para que você seja capaz de construir suas próprias aplicações web de forma ágil, organizada e escalável.
O que é Express.js?🔗
O Express.js é um framework para Node.js
Introdução ao Node.js: Servidor e FerramentasDescubra como dominar o Node.js e criar servidores HTTP. Aprenda a instalar, configurar e utilizar o NPM, além de aplicar práticas no desenvolvimento web. que simplifica a criação de aplicações web e APIs. Entre suas principais características, destacam-se:
- Minimalismo: Focado no essencial para servir requisições HTTP e gerenciar rotas.
- Extensibilidade: Possibilidade de adicionar comportamentos por meio de middlewares (códigos que interceptam requisições para processá-las ou modificá-las).
- Comunidade Ativa: Uma grande variedade de bibliotecas e pacotes de terceiros compatíveis.
Essa combinação faz do Express.js uma das ferramentas mais populares para desenvolvimento de back-end em JavaScript
Introdução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente..
Configuração Inicial e Estrutura de Projeto🔗
Para dar início a um projeto com Express.js, é preciso ter o Node.js
Introdução ao Node.js: Servidor e FerramentasDescubra como dominar o Node.js e criar servidores HTTP. Aprenda a instalar, configurar e utilizar o NPM, além de aplicar práticas no desenvolvimento web. instalado em seu sistema. Uma vez configurado o ambiente, pode-se criar um novo diretório para o projeto e inicializar o arquivo package.json:
mkdir minha-aplicacao-express
cd minha-aplicacao-express
npm init -y
Em seguida, instale a biblioteca do Express.js:
npm install express
Organização de Pastas
Uma organização recomendada e simples para um projeto Express.js pode ser:
minha-aplicacao-express
├── package.json
├── package-lock.json
├── src
│ ├── app.js
│ └── routes
│ └── index.js
└── public
└── css
└── js
- src
Inserindo Imagens: `<img>`, Formatos, `alt` e `title`Aprenda a inserir imagens em HTML utilizando a tag <img> com foco em acessibilidade e performance, explorando atributos, formatos e melhores práticas.: concentra o código-fonte da aplicação. - app.js: ponto de entrada principal, onde configuramos o servidor e os middlewares.
- routes: diretório opcional para gerenciar as rotas por módulos
Tratamento de Módulos e BundlersDescubra como módulos e bundlers revolucionaram o desenvolvimento JavaScript, promovendo organização, performance e escalabilidade em aplicações modernas. ou funcionalidades. - public: pasta para arquivos estáticos, como imagens, arquivos CSS e JavaScript
Introdução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente..
Criando o Servidor com Express.js🔗
A base de uma aplicação Express.js inclui a importação do módulo e a criação de um objeto
Fundamentos de Arrays e ObjetosDomine arrays e objetos em JavaScript com este tutorial narrativo. Aprenda a utilizar métodos e exemplos práticos para aprimorar seu desenvolvimento web. app. Nesse objeto
Fundamentos de Arrays e ObjetosDomine arrays e objetos em JavaScript com este tutorial narrativo. Aprenda a utilizar métodos e exemplos práticos para aprimorar seu desenvolvimento web., definimos as rotas e, por fim, “subimos” o servidor para ouvir requisições em uma porta definida.
Exemplo de um arquivo app.js básico:
const express = require('express');
const app = express();
// Exemplo de rota raiz
app.get('/', (req, res) => {
res.send('Olá, Express!');
});
// Subindo o servidor em uma porta específica
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Servidor rodando na porta ${PORT}`);
});
Ao rodar o comando:
node src/app.js
Sua aplicação estará disponível em http://localhost:3000.
Definindo Rotas e Métodos🔗
Uma aplicação web precisa escutar requisições em endpoints específicos. No Express.js, podemos criar rotas para diferentes métodos
Classes e Herança em ES6+Aprenda a dominar classes e herança em ES6+: escreva códigos JavaScript claros e eficientes com métodos, getters e setters. HTTP, como GET, POST, PUT, DELETE.
Exemplos de configurações de rotas:
// Rotas em app.js ou em arquivos separados
app.get('/usuarios', (req, res) => {
res.send('Listar usuários');
});
app.post('/usuarios', (req, res) => {
// Lógica para criar um usuário
res.send('Usuário criado com sucesso');
});
app.put('/usuarios/:id', (req, res) => {
// Atualiza o usuário com o ID fornecido
const id = req.params.id;
res.send(`Usuário ${id} atualizado`);
});
app.delete('/usuarios/:id', (req, res) => {
// Remove um usuário específico
const id = req.params.id;
res.send(`Usuário ${id} removido`);
});
Organização em Arquivos de Rota
É comum separar as rotas em arquivos distintos para manter o projeto organizado. No diretório routes/index.js, por exemplo:
const express = require('express');
const router = express.Router();
// Rota para usuários
router.get('/usuarios', (req, res) => {
res.send('Listar usuários');
});
// ... outras rotas
module.exports = router;
Em app.js, importamos essas rotas:
const express = require('express');
const app = express();
const rotasIndex = require('./routes/index');
app.use(rotasIndex);
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Servidor rodando na porta ${PORT}`);
});
Middlewares: Interceptando e Processando Requisições🔗
Middlewares são funções
Funções e Escopo no JavaScriptAprenda a utilizar funções e escopos em JavaScript com nosso guia prático. Melhore sua organização de código e evolua seus projetos com boas práticas. que interceptam o fluxo de requisições e respostas, permitindo que apliquemos lógicas como registro de logs, autenticação, tratamento de erros e muito mais.
Exemplo de Middleware de Log
// Middleware global que registra cada requisição no console
app.use((req, res, next) => {
console.log(`Método: ${req.method}, URL: ${req.url}`);
next(); // segue para a próxima função ou rota
});
Uso de Middlewares de Terceiros
Alguns middlewares já prontos podem ser instalados via npm. Exemplos:
Introdução ao Node.js: Servidor e FerramentasDescubra como dominar o Node.js e criar servidores HTTP. Aprenda a instalar, configurar e utilizar o NPM, além de aplicar práticas no desenvolvimento web.
- body-parser (já incluso nas versões atuais do Express via
express.json()eexpress.urlencoded()) - morgan para logs detalhados
- cors
Cross-Origin Resource Sharing (CORS) e Políticas de SegurançaExplore o mecanismo CORS e aprenda como ajustar cabeçalhos essenciais para proteger e permitir acesso seguro em sua aplicação web. para habilitar o CORS (Cross-Origin Resource Sharing
Cross-Origin Resource Sharing (CORS) e Políticas de SegurançaExplore o mecanismo CORS e aprenda como ajustar cabeçalhos essenciais para proteger e permitir acesso seguro em sua aplicação web.)
const morgan = require('morgan');
const cors = require('cors');
app.use(cors());
app.use(morgan('dev'));
app.use(express.json()); // substituto para body-parser
Servindo Arquivos Estáticos🔗
Para servir arquivos como CSS
O que é CSS?Descubra como o CSS transforma a aparência das páginas web, separando conteúdo de design para melhor organização e flexibilidade., imagens e scripts, utilize o middleware express.static. Basta informar ao Express.js a pasta onde estarão esses arquivos:
app.use(express.static('public'));
Agora, qualquer arquivo disponível em ./public pode ser acessado diretamente pela aplicação. Por exemplo, ./public/css estará acessível em
O que é CSS?Descubra como o CSS transforma a aparência das páginas web, separando conteúdo de design para melhor organização e flexibilidade./estilos.csshttp://localhost:3000/css.
O que é CSS?Descubra como o CSS transforma a aparência das páginas web, separando conteúdo de design para melhor organização e flexibilidade./estilos.css
Sistemas de Template (View Engines)🔗
Quando é preciso entregar páginas HTML
O que é HTML? Fundamentos, História e Evolução da LinguagemDescubra a origem e evolução do HTML, entendendo sua importância na estrutura da web e como influenciou o desenvolvimento digital moderno. dinâmicas, podemos utilizar view engines, como EJS, Pug ou Handlebars. O objetivo é preencher dados de forma dinâmica nas páginas antes de enviá-las ao cliente.
Exemplo com EJS
Instale com:
npm install ejs
Em seguida, configure no app.js:
app.set('view engine', 'ejs');
app.set('views', './src/views');
Crie um arquivo home.ejs dentro de ./src:
Inserindo Imagens: `<img>`, Formatos, `alt` e `title`Aprenda a inserir imagens em HTML utilizando a tag <img> com foco em acessibilidade e performance, explorando atributos, formatos e melhores práticas./views
<!DOCTYPE html>
<html>
<head>
<title>Minha Aplicação Express</title>
</head>
<body>
<h1>Olá, <%= nome %>!</h1>
</body>
</html>
Na rota, renderize essa view:
app.get('/', (req, res) => {
res.render('home', { nome: 'Estudante' });
});
Quando você acessa http://localhost:3000/, o Express.js processa o template
Criando e Gerenciando Templates DinâmicosAprenda a utilizar templates dinâmicos para criar interfaces web eficientes. Descubra técnicas com JavaScript puro integrando boas práticas e segurança. e envia o HTML com o valor de nome substituído.
Práticas de Desenvolvimento e Boas Sugestões🔗
- Separação de Responsabilidades: utilize pastas separadas para rotas, middlewares e configurações de banco de dados (se for
Estruturas de Controle: if, switch e loopsAprenda as estruturas de controle em JavaScript, como if/else, switch e loops, com exemplos claros e didáticos para otimizar seu código e lógica de programação. o caso). - Variáveis
Pré-processadores (SASS/SCSS): Variáveis, Mixins, NestingAprenda a manter seu CSS de forma otimizada com SASS/SCSS utilizando variáveis, mixins e nesting para um código limpo e produtivo. de Ambiente: para configurações sensíveis (como portas, chaves de API
Consumindo APIs com Fetch e AxiosDescubra como integrar APIs com Fetch e Axios em JavaScript. Aprenda a fazer requisições HTTP, tratar erros e usar métodos GET e POST com exemplos práticos.), utilize arquivos .enve bibliotecas comodotenv. - Tratamento de Erros: garanta que, se houver exceções
Tratamento de Erros e Exceções em Chamadas AssíncronasAprenda a tratar erros com Promises e Async/Await, garantindo robustez, legibilidade e confiabilidade nas operações assíncronas em JavaScript., seu middleware de erro (um middleware especial no Express) capture e retorne mensagens adequadas. - Escalabilidade
SVG e Canvas: Diferenças e Usos BásicosDescubra as diferenças entre SVG e Canvas com este guia completo. Entenda nuances, técnicas de desenho e boas práticas para gráficos web.: em aplicações maiores, considere usar um gerenciador de processos como o PM2ouforeverpara manter o servidor em execução.
| Recomendações | Descrição |
|---|---|
| Logs Detalhados | Uso de pacotes como morgan para registrar requisições e status. |
| Validações | Bibliotecas como express-validator podem garantir integridade. |
| SSL/TLS | Em produção, servir conteúdos via HTTPS para maior segurança. |
| Compressão Gzip | Utilizar compression para reduzir o tamanho das respostas HTTP. |
Executando e Testando a Aplicação🔗
Uma abordagem simples é usar o próprio Node
Introdução ao Node.js: Servidor e FerramentasDescubra como dominar o Node.js e criar servidores HTTP. Aprenda a instalar, configurar e utilizar o NPM, além de aplicar práticas no desenvolvimento web. para executar, entretanto, há quem prefira instalar globalmente o nodemon, que recarrega o servidor sempre que um arquivo é alterado:
npm install --save-dev nodemon
Adicione um script em seu package.json:
{
"scripts": {
"start": "node src/app.js",
"dev": "nodemon src/app.js"
}
}
Agora, basta rodar:
npm run dev
A cada alteração no código, a aplicação reiniciará automaticamente.
Conclusão🔗
O Express.js é conhecido por sua simplicidade, flexibilidade e velocidade no desenvolvimento de aplicações web e serviços.
Com poucas linhas de código, conseguimos configurar rotas, middlewares, serviços de arquivos estáticos
Posicionamento: static, relative, absolute, fixed, stickyDescubra como usar os métodos de posicionamento CSS, de static a sticky, para criar layouts interativos, precisos e eficazes. e até mesmo lidar com templates
Criando e Gerenciando Templates DinâmicosAprenda a utilizar templates dinâmicos para criar interfaces web eficientes. Descubra técnicas com JavaScript puro integrando boas práticas e segurança. para geração de conteúdo dinâmico.
Depois de entender esses conceitos básicos, você estará pronto para construir aplicações robustas, escaláveis e prontas para produção. Recomendamos sempre aprofundar cada tópico com experimentos e práticas reais, criando pequenos projetos e explorando integrações com bancos de dados e outros serviços.
Fique à vontade para customizar, estender e integrar mais recursos à sua aplicação, lembrando sempre dos princípios de clareza e organização do código.
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- Documentação oficial do MDN: developer.mozilla.org/pt-BR/docs/Web/JavaScript
- Documentação oficial do Node.js: nodejs.org/en/docs/
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 11 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 14 meses atrás
há 14 meses atrás
há 13 meses atrás
há 13 meses atrás
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás