2015-09-27 102 views
2

我是node.js的初學者。
我的index.ejs文件有一個包含header.ejs文件。除了我無法將值傳遞給header.ejs中的變量status以外,一切正常。將變量傳遞給node.js中的res.render?

index.ejs

<html> 
. 
. 
<title> <%= title %> </title> 
. 
. 
<% include ../partial/header.ejs %> 
. 
. 
</html> 

header.ejs

<header> 
. 
. 
<p>logged in status: <%= status %> </p> 
. 
. 
</header> 

app.js

. 
. 
. 
app.get('/', function(req, res) 
{ 
    // not working :(
    res.render('index', { 
     "status":"loggedin", 
     "title":"home" 
    }); 
}); 
. 
. 
. 

回答

1

有你的結構亂一些。

  1. <title>應該在<head>之內。
  2. <p>應該在<body>之內。
  3. 請注意,您可能會在模板中混淆<head><header>標記。您可以瞭解差異here

這是我希望會爲你工作的例子:

index.ejs:

<html> 
<head> 
    <title> <%= title %> </title> 
</head> 
<body> 
    <% include ../partial/header %> 
</body> 
</html> 

header.ejs:

<p>logged in status: <%= status %> </p> 
+0

謝謝。我知道這一點,但我並沒有將頭腦和頭腦混淆。我只是尖叫,專注於我的問題。 App.js呈現index.ejs。但是爲了渲染index.ejs,它需要首先渲染header.ejs。我怎樣才能做到這一點?任何替代方法? – WWJ

+0

@WWJ,嘗試從包含語法中刪除'.ejs'。在EJS中,只要您的節點進程具有對其的讀取訪問權限,就可以包含任何模板文件。 – Selfish

+0

是的,完美的。那正是我想要的。 – WWJ