0Pricing
TypeScript Academy · Aula

Middleware tipado e manipuladores de erros

Escreva funções de middleware do Express com segurança de tipos

Middleware tipado e manipuladores de erros é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 4 aulas no total.

Boas-vindas

Funções intermediárias e manipuladores de erros do Express, seguros quanto aos tipos, evitam erros comuns nos fluxos de processamento de solicitações.

Assinatura da função intermediária

Uma função intermediária recebe req, res e next. Use o tipo RequestHandler de express.
import { RequestHandler } from 'express';
const authMiddleware: RequestHandler = (req, res, next) => {
  if (!req.headers.authorization) return res.status(401).json({});
  next();
};

NextFunction

Importe NextFunction para tipificar explicitamente o terceiro parâmetro.
import { Request, Response, NextFunction } from 'express';
function logger(req: Request, res: Response, next: NextFunction): void {
  console.log(req.method, req.path);
  next();
}

Assinatura do manipulador de erros

Os manipuladores de erros precisam de quatro parâmetros. O TypeScript impõe isso por meio do tipo ErrorRequestHandler.
import { ErrorRequestHandler } from 'express';
const errorHandler: ErrorRequestHandler = (err, req, res, next) => {
  res.status(err.status ?? 500).json({ message: err.message });
};

Classe de erro personalizada

Defina uma classe de erro tipada com um código de status.
class AppError extends Error {
  constructor(public message: string, public status: number = 500) {
    super(message);
  }
}

Invólucro assíncrono para função intermediária

Envolva funções intermediárias assíncronas para encaminhar erros ao manipulador de erros do Express.
function asyncHandler(fn: RequestHandler): RequestHandler {
  return (req, res, next) => Promise.resolve(fn(req, res, next)).catch(next);
}

Função intermediária de autenticação com associação de usuário

Associe o usuário autenticado à solicitação após verificar o token.
const authenticate: RequestHandler = async (req, res, next) => {
  const user = await verifyToken(req.headers.authorization);
  req.user = user; // requires module augmentation
  next();
};

Função intermediária de validação com Zod

Use Zod em uma função intermediária para analisar os corpos das solicitações e restringir seus tipos.
function validate<T>(schema: ZodSchema<T>): RequestHandler {
  return (req, res, next) => {
    const result = schema.safeParse(req.body);
    if (!result.success) return res.status(400).json(result.error);
    req.body = result.data;
    next();
  };
}

Função intermediária no nível do Router

Aplique funções intermediárias tipadas a rotas específicas.
router.use('/admin', authenticate, authorize('admin'));
router.get('/admin/users', asyncHandler(listUsers));

Função intermediária de registro

Função intermediária tipada para registrar solicitações.
const requestLogger: RequestHandler = (req, _res, next) => {
  console.log(`${req.method} ${req.path}`);
  next();
};

Registro global do manipulador de erros

Registre o manipulador de erros como a última função intermediária da sequência.
app.use(requestLogger);
app.use('/api', apiRouter);
app.use(errorHandler); // must be last

Verificação rápida

Quantos parâmetros um manipulador de erros do Express tem?

Recapitulação

Use os tipos RequestHandler, ErrorRequestHandler e NextFunction para funções intermediárias do Express. Envolva os manipuladores assíncronos para encaminhar erros. Use Zod em funções intermediárias para validar com tipagem o corpo das solicitações.

Perguntas Frequentes

A aula “Middleware tipado e manipuladores de erros” é grátis?

Sim — o texto completo de “Middleware tipado e manipuladores de erros” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 4 aulas no total.

O que vou aprender em “Middleware tipado e manipuladores de erros”?

Escreva funções de middleware do Express com segurança de tipos Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar TypeScript Academy?

Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Middleware tipado e manipuladores de erros”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de TypeScript Academy?

Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Configurando TypeScript com Node.js
  2. Tipando requisições e respostas do Express
  3. Middleware tipado e manipuladores de erros
  4. Variáveis de ambiente e tipagem da configuração
← Voltar para TypeScript Academy