2015-09-27 2 views
2

Я новичок в node.js.
В моем index.ejs файлах есть файл header.ejs. Все работает хорошо, за исключением того, что я не могу передать значения переменной status в header.ejs.Передать переменные res.render в node.js?

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' из синтаксиса include. В EJS вы можете включить любой файл шаблона, если процесс вашего узла имеет доступ к нему. – Selfish

+0

Да, отлично. Именно этого я и хочу. – WWJ