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.

Usando mecanismos de modelo com o Express

A template engine enables you to use static template files in your application. 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. This approach makes it easier to design an HTML page.

The Express application generator uses Pug as its default, but it also supports Handlebars, and EJS, among others.

To render template files, set the following application setting properties, in the default app.js created by the generator:

Em seguida instale o pacote npm correspondente ao mecanismo de modelo:

$ npm install pug --save

Mecanismos de modelo compatíveis com o Express como o Pug exportam uma função chamada __express(filePath, options, callback), que é chamada pela função res.render() para renderizar o código de modelo.

Alguns mecanismos de modelo não seguem esta convenção. A biblioteca Consolidate.js segue esta convenção mapeando todos os mecanismos de modelo populares do Node.js, e portanto funciona de forma harmoniosa com o Express.

Após o mecanismo de visualização estar configurado, você não precisa especificar o mecanismo ou carregar o módulo do mecanismo de modelo no seu aplicativo; o Express carrega o módulo internamente, como mostrado abaixo (para o exemplo acima).

app.set('view engine', 'pug')

Crie um arquivo de modelo do Pug chamado index.pug no diretório views, com o seguinte conteúdo:

html
  head
    title= title
  body
    h1= message

Em seguida crie uma rota para renderizar o arquivo index.pug. Se a propriedade view engine não estiver configurada, é preciso especificar a extensão do arquivo view. Caso contrário, é possível omití-la.

app.get('/', (req, res) => {
  res.render('index', { title: 'Hey', message: 'Hello there!' })
})

Ao fazer uma solicitação à página inicial, o arquivo index.pug será renderizado como HTML.

The view engine cache does not cache the contents of the template’s output, only the underlying template itself. The view is still re-rendered with every request even when the cache is on.

Edit this page