Esta tradução fornecida pelo StrongLoop / IBM.
Este documento pode estar desatualizado em relação à documentação em Inglês. Para obter as atualizações mais recentes, consulte a documentação em Inglês.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:
O Express não tem noção de banco de dados. Este conceito é deixado para módulos do Node de terceiros, permitindo que você fazer a interface com praticamente qualquer banco de dados.
Consulte LoopBack para uma estrutura baseada no Express que é centrada em modelos.
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.
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.
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) {
res.status(404).send('Sorry cant find that!');
});
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);
res.status(500).send('Something broke!');
});
Para obter mais informações, consulte Manipulação de erros.
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()
.