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
Assinatura da função intermediária
import { RequestHandler } from 'express';
const authMiddleware: RequestHandler = (req, res, next) => {
if (!req.headers.authorization) return res.status(401).json({});
next();
};NextFunction
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
import { ErrorRequestHandler } from 'express';
const errorHandler: ErrorRequestHandler = (err, req, res, next) => {
res.status(err.status ?? 500).json({ message: err.message });
};Classe de erro personalizada
class AppError extends Error {
constructor(public message: string, public status: number = 500) {
super(message);
}
}Invólucro assíncrono para função intermediária
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
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
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
router.use('/admin', authenticate, authorize('admin'));
router.get('/admin/users', asyncHandler(listUsers));Função intermediária de registro
const requestLogger: RequestHandler = (req, _res, next) => {
console.log(`${req.method} ${req.path}`);
next();
};Registro global do manipulador de erros
app.use(requestLogger);
app.use('/api', apiRouter);
app.use(errorHandler); // must be lastVerificação rápida
Recapitulação
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
- Configurando TypeScript com Node.js
- Tipando requisições e respostas do Express
- Middleware tipado e manipuladores de erros
- Variáveis de ambiente e tipagem da configuração