Files
expressjs.com/pt-br/starter/faq.md
github-actions[bot] fbcca21a9a i18n: new crowdin translations (#2177)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-02-08 21:35:28 -05:00

4.0 KiB

layout, title, description, menu, order, redirect_from
layout title description menu order redirect_from
page Pergunta mais Frequentes do Express Find answers to frequently asked questions about Express.js, including topics on application structure, models, authentication, template engines, error handling, and more. starter 7

Perguntas mais frequentes

Como eu devo estruturar meu aplicativo?

Não existe uma resposta definitiva para esta questão. A resposta depende da escala do seu aplicativo e o time que está envolvido. Para ser o mais flexível possível, o Express não faz suposições em termos de estrutura.

Rotas e outras lógicas específicas do aplicativo podem ficar em quantos arquivos quiser, em qualquer estrutura de diretórios que preferir. Visualize os seguintes exemplos para obter inspiração:

Além disso, existem extensões de terceiros para o Express, que simplificam alguns desses padrões:

Como eu defino modelos?

O Express não tem noção de banco de dados. Este conceito é deixado para módulos do Node de terceiros, permitindo que você faça a interface com praticamente qualquer banco de dados.

Consulte LoopBack para uma estrutura baseada no Express que é centrada em modelos.

Como posso autenticar usuários?

Autenticação é outra área muito opinada que o Express não se arrisca a entrar. Você pode usar qualquer esquema que desejar. Para um esquema simples com nome de usuário / senha, consulte este exemplo.

Quais mecanismos de modelo o Express suporta?

O Express suporta qualquer mecanismo de modelo que esteja em conformidade com a assinatura (path, locals, callback). Para normalizar interfaces e o armazenamento em cache de mecanismo de modelo, consulte o projeto consolidate.js para obter suporte. Mecanismos de modelo não listados podem ainda assim suportar a assinatura do Express.

Roteamento engenhoso

Como manipulo respostas 404?

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((req, res, next) => {
  res.status(404).send("Sorry can't find that!")
})

Add routes dynamically at runtime on an instance of express.Router() so the routes are not superseded by a middleware function.

Como configuro um manipulador de erros?

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((err, req, res, next) => {
  console.error(err.stack)
  res.status(500).send('Something broke!')
})

Para obter mais informações, consulte [Manipulação de erros](/{{ page.lang }}/guide/error-handling.html).

Como renderizar um HTML simples?

Você não faz! Não há necessidade de se "renderizar" HTML com a função res.render(). se você tiver um arquivo específico, use a função res.sendFile(). Se estiver entregando muitos ativos a partir de um diretório, use a função de middleware express.static().

What version of Node.js does Express require?

  • [Express 4.x](/{{ page.lang }}/4x/api.html) requer Node.js 0.10 ou superior.
  • [Express 5.x](/{{ page.lang }}/5x/api.html) requer Node.js 18 ou superior.