2016-06-26 36 views
6

由於某些原因,我無法將變量傳遞給具有Node JS的帕格模板。節點JS將變量傳遞給Jade/Pug

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

....

extends layout.pug 

block content 
    h1 #{hello} guy 

這只是返回與「哈巴狗index.html文件中

+0

你可以把更多的代碼?什麼是'應用程序'? 'layout.pug'有什麼? – chharvey

回答

6

我認爲你正在使用JADE編碼(#{}你好) 「傢伙」 「(更新玉)插件與靜態.html - 完全錯誤。

按照以下線路:

  1. 使用這首

    app.set('views', __dirname + '/public/views'); 
    app.set('view engine', 'pug'); 
    
  2. 比這傳遞給第一次訪問

    app.get('/', function (req, res) { 
        res.render('index', { title: 'Hey', message: 'Hello there!'}); 
    }); 
    
  3. 比在模板文件「index.pug呼應「in」/ public/views「

    html 
        head 
        title= title 
    body 
        h1= message 
    
+0

它仍然沒有工作,一切都是一樣的。 –

+0

給我你的目錄結構的快照 + 顯示我 app.set( '意見',__dirname + '/公/若干意見')的服務器上的文件; app.set('view engine','pug'); ('/',function(req,res){ res.render('index',{title:'Hey',message:'Hello there!'}); ( )通過這個來第一次訪問 }); –

+0

現在它只是說「快遞」https://github.com/jpking72/nodejsfiddle.git –

-1

也許你必須設置代碼...

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

我不確定解決方案的原始問題,但我可以向你保證,這不是解決方案,應該沒有影響。我過去使用過快遞和帕格,這個建議不會改變任何事情。 原始詢問用戶可能需要以不同的方式連接模板引擎,或者可能正在離開。雖然我沒有足夠回答OP。 – Ryan

+0

這是不正確的。 JavaScript文字對象可以帶引號或不帶引號,它沒有區別。 – chharvey