Questa traduzione fornita da StrongLoop / IBM.
È possibile che questo documento non sia aggiornato poiché la documentazione è in inglese. Per gli ultimi aggiornamenti, fare riferimento alla documentazione in inglese.Prima che Express possa eseguire il rendering di file template, è necessario specificare le seguenti impostazioni dell’applicazione:
views
, la directory dove sono ubicati i file di template. Ad esempio: app.set('views', './views')
view engine
, il motore di template da utilizzare. Ad esempio: app.set('view engine', 'pug')
Quindi, installare il pacchetto npm del motore di template corrispondente:
$ npm install pug --save
I motori di template compatibili con Express, ad esempio Pug esportano una funzione denominata __express(filePath, options, callback)
, che viene richiamata dalla funzione res.render()
, per il rendering del codice di template.
Alcuni motori di template non seguono questa convenzione. La libreria Consolidate.js segue questa convenzione, associando tutti i motori di template Node.js popolari e, perciò, funziona ininterrottamente in Express.
Una volta specificata l’impostazione view engine, non è necessario specificare il motore o caricare il modulo del motore di template nella propria app; Express carica il modulo internamente, come mostrato di seguito (per l’esempio precedente).
app.set('view engine', 'pug');
Creare un file di template Pug denominato index.pug
nella directory views
, con il seguente contenuto:
html
head
title= title
body
h1= message
Quindi, creare una route per il rendering del file index.pug
. Se la proprietà view engine
non è impostata, è necessario specificare l’estensione del file view
. Altrimenti, è possibile ometterla.
app.get('/', function (req, res) {
res.render('index', { title: 'Hey', message: 'Hello there!'});
});
Quando si fa una richiesta alla home page, verrà eseguito il rendering del file index.pug
come HTML.
Per ulteriori informazioni su come funzionano i motori di template in Express, consultare la sezione: “Sviluppo dei motori di template per Express”.