Express.js em Português

Compartilhado por um usuário do Flashcards.gg · gerado com IA · Denunciar este conjunto

Conceitos fundamentais do framework Express.js, incluindo rotas, middlewares e manipulação de requisições em JavaScript.

50 cartões Português Nível: Intermediário Desenvolvimento web Publicado
Toque no cartão para virar

Cartões · 50

Inicializar uma aplicação básica no Express
const express = require('express'); const app = express(); app.listen(3000, () => console.log('Servidor rodando'));
Definir rota GET básica
app.get('/ola', (req, res) => { res.send('Olá Mundo!'); });
Definir rota POST básica
app.post('/usuarios', (req, res) => { res.status(201).send('Usuário criado'); });
Definir rota PUT básica
app.put('/usuarios/:id', (req, res) => { res.send('Usuário atualizado'); });
Definir rota DELETE básica
app.delete('/usuarios/:id', (req, res) => { res.sendStatus(204); });
Definir rota PATCH básica
app.patch('/usuarios/:id', (req, res) => { res.send('Campo modificado'); });
Acessar parâmetros de rota (Route Params)
app.get('/produtos/:id', (req, res) => { const { id } = req.params; res.send('Produto ' + id); });
Acessar parâmetros de consulta (Query Params)
app.get('/busca', (req, res) => { const termo = req.query.q; res.json({ busca: termo }); });
Habilitar parsing de corpo JSON no Express
app.use(express.json());
Acessar corpo da requisição POST (Request Body)
app.post('/login', (req, res) => { const { email, senha } = req.body; res.send('Logado: ' + email); });
Habilitar parsing de dados via formulário URL-encoded
app.use(express.urlencoded({ extended: true }));
Enviar resposta em formato JSON
app.get('/perfil', (req, res) => { res.json({ nome: 'Ana', idade: 25 }); });
Definir status HTTP da resposta explicitamente
app.get('/nao-encontrado', (req, res) => { res.status(404).send('Página não encontrada'); });
Criar e registrar middleware global de log
app.use((req, res, next) => { console.log(req.method, req.url); next(); });
Middleware específico aplicado a uma única rota
const auth = (req, res, next) => next(); app.get('/painel', auth, (req, res) => res.send('Painel privado'));
Usar múltiplos middlewares em cadeia na rota
app.get('/admin', verificaToken, ehAdmin, (req, res) => { res.send('Acesso concedido'); });
Criar um agrupador de rotas usando Router
const router = express.Router(); router.get('/lista', (req, res) => res.send([])); app.use('/clientes', router);
Servir arquivos estáticos (HTML, CSS, imagens)
app.use(express.static('public'));
Servir arquivos estáticos em prefixo de rota virtual
app.use('/static', express.static('public'));
Capturar todas as rotas não tratadas (404 Fallback)
app.use((req, res) => { res.status(404).send('Recurso não encontrado'); });
Middleware de tratamento global de erros (4 parâmetros)
app.use((err, req, res, next) => { console.error(err); res.status(500).json({ erro: err.message }); });
Passar erro para o middleware de erro com next()
app.get('/teste', (req, res, next) => { next(new Error('Falha no processamento')); });
Redirecionar requisição para outra URL
app.get('/antigo', (req, res) => { res.redirect('/novo'); });
Enviar um arquivo para download no cliente
app.get('/relatorio', (req, res) => { res.download('./arquivos/relatorio.pdf'); });
Enviar um arquivo estático específico diretamente
const path = require('path'); app.get('/', (req, res) => { res.sendFile(path.resolve('index.html')); });
Definir cabeçalho personalizado de resposta
app.get('/dados', (req, res) => { res.set('X-Total-Count', '100'); res.json([]); });
Ler cabeçalho da requisição recebida
app.get('/auth', (req, res) => { const token = req.get('Authorization'); res.send('Token: ' + token); });
Configurar motor de templates (View Engine)
app.set('view engine', 'ejs'); app.set('views', './views');
Renderizar template dinâmico na rota
app.get('/', (req, res) => { res.render('home', { titulo: 'Página Inicial' }); });
Manipular método OPTIONS para checagem de CORS
app.options('/api', (req, res) => { res.set('Access-Control-Allow-Origin', '*').sendStatus(204); });
Habilitar CORS global com middleware comum
const cors = require('cors'); app.use(cors());
Definir rota com parâmetros opcionais
app.get('/artigos/:ano/:mes?', (req, res) => { res.json(req.params); });
Encadear manipuladores para o mesmo caminho via app.route()
app.route('/livro').get((req, res) => res.send('Obter')).post((req, res) => res.send('Adicionar'));
Pular middlewares restantes com next('route')
app.get('/user/:id', (req, res, next) => { if (req.params.id === '0') return next('route'); next(); });
Acessar endereço IP do cliente
app.get('/ip', (req, res) => { res.send('Seu IP: ' + req.ip); });
Verificar tipo de mídia aceito pelo cliente
app.get('/conteudo', (req, res) => { if (req.accepts('json')) return res.json({}); res.send('Texto'); });
Acessar cookies da requisição usando cookie-parser
const cookieParser = require('cookie-parser'); app.use(cookieParser()); app.get('/', (req, res) => res.send(req.cookies));
Definir um cookie de resposta
app.get('/set-cookie', (req, res) => { res.cookie('sessaoId', '12345', { httpOnly: true }).send('Cookie gravado'); });
Limpar um cookie existente
app.get('/logout', (req, res) => { res.clearCookie('sessaoId').send('Desconectado'); });
Ativar cabeçalho de proxy reverso confiavel
app.set('trust proxy', 1);
Adicionar segurança nos cabeçalhos HTTP com Helmet
const helmet = require('helmet'); app.use(helmet());
Compressão de respostas HTTP com compression
const compression = require('compression'); app.use(compression());
Registrar logs de requisições com Morgan
const morgan = require('morgan'); app.use(morgan('dev'));
Manipular upload de arquivos únicos usando Multer
const multer = require('multer'); const upload = multer({ dest: 'uploads/' }); app.post('/foto', upload.single('imagem'), (req, res) => res.send('OK'));
Definir variáveis globais da aplicação com app.locals
app.locals.tituloApp = 'Sistema de Vendas'; app.get('/', (req, res) => res.send(req.app.locals.tituloApp));
Passar dados entre middlewares via res.locals
app.use((req, res, next) => { res.locals.usuarioId = 42; next(); }); app.get('/', (req, res) => res.send('ID: ' + res.locals.usuarioId));
Definir rota com validação por expressão regular
app.get(/.*fly$/, (req, res) => { res.send('Caminho termina com fly'); });
Finalizar requisição sem enviar corpo
app.get('/vazio', (req, res) => { res.end(); });
Middleware para parsing de corpo de texto bruto
app.use(express.text()); app.post('/texto', (req, res) => res.send('Recebido: ' + req.body));
Tratar rotas assíncronas com try/catch e repassar erro
app.get('/async', async (req, res, next) => { try { const dados = await buscaBanco(); res.json(dados); } catch (err) { next(err); } });

Conjuntos relacionados

Mais em Desenvolvimento web →