3
respostas

erro404 e erro500 onde?

Eu fiz a tarefa e acertei, do jeito que o instrutor colocou na resposta.

Contudo, fiquei quebrando a cabeça e revirando meu código para encontrar onde os templates 404.marko e 500.marko do arquivo src/app/views/base/index.js abaixo são utilizadas e não encontrei!

module.exports = {
    erro404: require('./erros/404.marko'),
    erro500: require('./erros/500.marko'),
    home: require('./home/home.marko')
};

Afinal, eles são utilizadas?

3 respostas

Daniel, boa tarde!

No Express, respostas 404 não são o resultado de um erro, portanto o middleware manipulador de erros não irá capturá-las. Este comportamento é porque uma resposta 404 simplesmente indicam a ausência de trabalho adicional para fazer; em outras palavras, o Express executou todas as funções de middleware e rotas, e descobriu que nenhuma delas respondeu. Tudo que você precisa fazer é incluir uma função de middleware no final da pilha (abaixo de todas as outras funções) para manipular uma resposta 404

app.use(function(req, res, next) {
  //retorna a página de 400
});

Você define middlewares de manipulação de erros da mesma forma que outros middlewares, exceto que com quatro argumentos ao invés de três; especificamente com a assinatura (err, req, res, next):

app.use(function(err, req, res, next) {
  console.error(err.stack);
  //retorna a página de 500
});

Espero ter ajudado e bons estudos!

Obrigado pela atenção, Felipe!

No entando, não era bem isso que eu estava perguntando... Minha dúvida é mais simples, na verdade. Verifique que existem os templates 404.marko e 500.marko, mas não achei no código do curso onde eles são utilizados, entendeu?

É como se os templates tivessem sido criados mas não foram utilizados... é isso! Daí a minha dúvida: eles realmente não foram utilizados ou EU que não encontrei o uso desses templates?

De qualquer forma, obrigado pela contribuição, me ajudou a entender um pouco mais sobre os middlewares!

Boa tarde, Daniel! Como vai?

Esses templates são usados nessa aula. Dá uma olhada lá!

Espero que esteja curtindo e aproveitando ao máximo todo conteúdo dos cursos de Node!

Grande abraço e bons estudos, meu aluno!