2013-02-25 7 views
16

Scenario: avevo sviluppato alcune pagine transazionali utilizzando Node.js, Express + Handlebars come motore di visualizzazione e MongoDB.C'è un modo per utilizzare più motori di vista con espresso + Node.js

Ora il problema è durante l'integrazione del modulo Ho ottenuto alcune delle pagine che sono costruite su Express + Jade come motore di visualizzazione.

Domanda: Come integrare pagine sono state costruite su Handlebars & alcuni su Jade?

+0

Potete mostrare come avete affrontato con l'identificazione delle pagine? – Lion789

risposta

17
  1. Aggiungi entrambi i motori e consolidate.js nel vostro package.json
  2. In yourapp.js

    motori var = require ('consolidare');

    app.engine ('jade', engines.jade);

    app.engine ("manubri", engine.handlebars);

Maggiori informazioni here

+0

È possibile aggiungere un motore di template personalizzato? http://expressjs.com/advanced/developing-template-engines.html –

+1

Questo non sembra funzionare per me. Express 4 sembra sempre eseguire il rendering di tutti i file con lo stesso motore, anche se l'estensione del file corrisponde a un motore diverso. –

+0

@WayneBloss mi sembra che tu abbia un motore di template predefinito nascosto nel tuo codice. Se hai generato l'app o avviato da un modello/seguito da una guida/etc, la tua app probabilmente ha un rendering predefinito specificato in un dato momento. – TyP

3

Express 4.0 e fino soluzione (fino a quando cambia di nuovo)

  1. NPM installare i motori di cui avete bisogno.

    // some examples 
    npm install ejs 
    npm install pug 
    npm install handlebars 
    
  2. Impostare i motori da utilizzare nel app.js.

    app.set('view engine', 'pug'); 
    app.set('view engine', 'ejs'); 
    
  3. Rendering del modello, assicurarsi di impostare l'estensione del file.

    // forces usage of the respective render engine by setting the file extension explicitly. 
    res.render('about.ejs', { title: 'About' }); 
    res.render('about.pug', { title: 'About' }); 
    
  4. Documentazione per ulteriori esempi di utilizzo.

Problemi correlati