1
resposta

[Reclamação] O video da aula 04 nomeado "Customizando erros" ensina a criar uma entidade de abrigo ao invés de ensinar a criar uma função para manipular os erros

O video da aula 04 nomeado "Customizando erros" ensina a criar uma entidade de abrigo ao invés de ensinar a criar uma função para manipular os erros, sugiro revisarem os videos da aula 04 - Erros personalizados. Para você que quer dar sequência no curso assim como eu, aqui estão os arquivos que precisam ser configurados antes de começar a assistir essa aula "Aplicando ManipulaErros": 1° Baixe o pacote express-async-errors executando o seguinte comando no terminal:

npm install express-async-errors

2° Configure o app.ts

//app.ts
import "express-async-errors";
import express from "express";
import router from "./routes";
import "reflect-metadata";
import { AppDataSource } from "./config/dataSource";
import { erroMiddleware } from "./middleware/erro";
const app = express();
app.use(express.json());
router(app);

3° Dentro da pasta enum, crie um arquivo chamado EnumHttpStatusCode.ts

//EnumHttpStatusCode.ts
export enum EnumHttpStatusCode {
  CREATED = 201,
  NO_CONTENT = 204,
  OK = 200,
  BAD_REQUEST = 400,
  NOT_FOUND = 404,
  INTERNAL_SERVER_ERROR = 500,
}

4° Renomeie a pasta util para utils, e dentro dela crie um arquivo chamado manipulaErros.ts

//manipulaErros.ts
export class ManipulaErros extends Error {
  readonly statusCode: number;
  constructor(message: string, statusCode: number) {
    super(message);
    this.statusCode = statusCode;
  }
}

5° Dentro da pasta middleware, crie um arquivo chamado erro.ts

//erro.ts
import { NextFunction, Request, Response } from "express";
import { ManipulaErros } from "../utils/manipulaErros";
import { EnumHttpStatusCode } from "../enum/EnumHttpStatusCode";

export const erroMiddleware = (
  erro: ManipulaErros,
  req: Request,
  res: Response,
  next: NextFunction
) => {
  const statusCode =
    erro.statusCode ?? EnumHttpStatusCode.INTERNAL_SERVER_ERROR;

  const mensagem = erro.statusCode ? erro.message : "Erro interno do servidor";

  res.status(statusCode).json({ mensagem });
  return next();
};

Agora pode prosseguir com a aula! ;)

1 resposta

Bom dia, Victor! Tudo bem?

Primeiramente gostaria de parabenizá-lo por identificar esse ponto e compartilhar um passo a passo do que deveria ser criado nessa aula, sei que ajudará os outros alunos.

Além disso, gostaria de informar que o problema presente nessa atividade já foi informado para o pessoal responsável pelo conteúdo e já devem estar fazendo a análise e ajuste do mesmo.

No mais, se precisar de ajuda ou tiver alguma dúvida relacionada aos seus estudos, o fórum é o melhor lugar para te ajudar.

Bons estudos!