2013-02-25 12 views
16

Scenariuszu: I rozwinęła kilka stron transakcyjnych za pomocą Node.js, Express + Handlebars jak widok silnika i MongoDB.Czy istnieje jakiś sposób, aby korzystać z wielu silników widok z ekspresowe + node.js

Teraz problem występuje podczas integracji modułu Mam niektóre strony, które są zbudowane na Express + Jade jako przeglądarkę.

Pytanie: Jak zintegrować stron zbudowanych na Kierownice & niektórych na Jade?

+0

można pokazać, w jaki sposób rozpatrywane identyfikacji stron? – Lion789

Odpowiedz

17
  1. Dodaj oba silniki i consolidate.js w package.json
  2. W yourapp.js

    silniki var = require ('konsolidacja');

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

    app.engine ("kierownice", engines.handlebars);

Więcej informacji here

+0

Czy można dodać niestandardowy silnik szablonów? http://expressjs.com/advanced/developing-template-engines.html –

+1

To nie działa dla mnie. Express 4 zawsze wydaje się renderować wszystkie pliki z tym samym silnikiem, nawet jeśli rozszerzenie pliku pasuje do innego silnika. –

+0

@WayneBloss brzmi dla mnie jak domyślny silnik szablonu ukryty w kodzie. Jeśli wygenerowałeś aplikację lub zacząłeś od szablonu/postępowałeś według instrukcji/etc, prawdopodobnie twoja aplikacja ma domyślny render określony w pewnym momencie. – TyP

3

Express 4.0 i up rozwiązanie (aż zmieni ponownie)

  1. NPM zamontować silniki potrzebne.

    // some examples 
    npm install ejs 
    npm install pug 
    npm install handlebars 
    
  2. Ustaw silniki do użycia w swoim app.js.

    app.set('view engine', 'pug'); 
    app.set('view engine', 'ejs'); 
    
  3. Renderuj swój szablon, pamiętaj, aby ustawić rozszerzenie pliku.

    // 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. Dokumentacja dla większej liczby przykładów użycia.