Usando mecanismos de template com o Express
Um motor de template permite que você use arquivos de template estáticos na sua aplicação. At runtime, the template engine replaces variables in a template file with actual values, and transforms the template into an HTML file sent to the client. Esta abordagem torna mais fácil projetar uma página HTML.
O gerador de aplicação Expressa usa Pug como seu padrão, mas também apoia Handlebars, e EJS, entre outros.
Para renderizar arquivos de template, defina as seguintes propriedades de configuração da aplicação, no app.js padrão criado pelo gerador:
views, o diretório onde se localizam os arquivos de template. Ex:app.set('views', './views'). Isto é padrão para o diretórioviewsno diretório raiz do aplicativo.ver engenho, o mecanismo de modelos a ser usado. Por exemplo, para usar o motor de template Pug:app.set('engenharia de visualização', 'pug').
Então instale o correspondente mecanismo de template do npm pacote; por exemplo, para instalar o Pug:
$ npm install pug --saveMecanismos de template compatíveis com o código, como Pug exporta uma função chamada __express(filePath, opções, callback),
que res.render() chama para renderizar o código de template.
Alguns motores de modelos não seguem esta convenção. A biblioteca @ladjs/consolidate segue esta convenção mapeando todos os mecanismos de modelo populares de Node.js e, portanto, funciona perfeitamente dentro do Express.
Depois que o motor de visualização estiver definido, você não precisa especificar o motor ou carregar o módulo de mecanismo de modelo no seu aplicativo; Expresso carrega o módulo internamente, por exemplo:
app.set('view engine', 'pug');Em seguida, crie um arquivo de template Pug chamado index.pug no diretório views, com o seguinte conteúdo:
html head title= title body h1= messageCrie uma rota para renderizar o arquivo index.pug. Se a propriedade view engine não estiver definida,
você deve especificar a extensão do arquivo view. Caso contrário, você pode omitir.
app.get('/', (req, res) => { res.render('index', { title: 'Hey', message: 'Hello there!' });});Quando você faz uma solicitação à página inicial, o arquivo index.pug será processado como HTML.
O cache do motor de exibição não armazena o conteúdo da saída do modelo, apenas o modelo subjacente em si. A visualização ainda é renderizada novamente com todas as requisições, mesmo que o cache esteja ativo.