2016-06-26 28 views
6

Per qualche motivo non riesco a passare una variabile al modello pug con Node JS.Node JS Passa una variabile a Jade/Pug

app.get("/", function (req, res) { 
    res.render('index', { hello : 'Hey'}) 
}) 

....

extends layout.pug 

block content 
    h1 #{hello} guy 

Questo solo restituisce "ragazzo" nel file index.html

+0

si può mettere più di codice? cos'è 'app'? cosa ha 'layout.pug'? – chharvey

risposta

6

Penso che si sta utilizzando la codifica JADE (# {ciao}) con "pug "(aggiornato jade) plugin con .html statico - completamente sbagliato.

seguire le linee di seguito:

  1. uso questa prima

    app.set('views', __dirname + '/public/views'); 
    app.set('view engine', 'pug'); 
    
  2. di passare questo per prima visita

    app.get('/', function (req, res) { 
        res.render('index', { title: 'Hey', message: 'Hello there!'}); 
    }); 
    
  3. di echeggiare nel file di modello "index.pug "in"/public/views "

    html 
        head 
        title= title 
    body 
        h1= message 
    
+0

Non funziona ancora, è tutto uguale. –

+0

dammi il tuo directory struttura istantanee + mi mostra il file server con app.set ('viste', __dirname + '/ Public/vista'); app.set ('visualizza motore', 'carlino'); piuttosto che passare alla prima visita app.get ('/', funzione (richiesta, res) { res.render ('index', {title: 'Hey', messaggio: 'Hello there!'}); }); –

+0

Ora dice semplicemente "Express" https://github.com/jpking72/nodejsfiddle.git –

-1

forse è necessario impostare il codice come ...

app.get("/", function (req, res) { 
    res.render('index', { 'hello' : 'Hey'}) 
}) 
+0

Non sono sicuro della soluzione alla domanda originale, ma posso assicurarti che questa non è la soluzione e non dovrebbe avere influenzare. Ho usato express e pug in passato, e questo suggerimento non cambierà nulla. L'utente richiedente originale probabilmente ha bisogno di cablare il motore del modello in modo diverso, ecc. O forse sta lasciando un passo indietro. Non ricordo abbastanza per rispondere all'OP, però. – Ryan

+0

questo non è corretto. gli oggetti letterali javascript possono avere le chiavi quotate o meno, non fa differenza. – chharvey