Express + jade: локальная переменная недоступна

У меня возникла очень простая проблема, но я не могу найти ответ на нее. Я работаю с node.js, express, и я просто пытаюсь передать локальную переменную в представление следующим образом:

 app.get('/', function(req, res){
  res.render("index", {locals: {
    title: "Blog",
    }
  });
});

Мой индексный индекс одинаково прост:

h1= title

Но по какой-то причине я продолжаю получать эту ошибку, как будто локальная переменная никогда не передается:

 500 ReferenceError: /home/spartan/Node_Projects/test/views/index.jade:1 > 1| h1= title 2| title is not defined
> 1| h1= title
  2| title is not defined

Я не знаю, что я делаю неправильно! Вот версии, которые я использую:

  • Экспресс: 3.0.0alpha1
  • node.JS: 0.6.14
  • Джейд: 0.24.0

Кто-нибудь, пожалуйста, помогите, чтобы я мог перейти к обучению node + express!

Ответы

Ответ 1

Вы должны передать переменную без locals. Это, вероятно, ново в express 3.0.0

res.render("index", {title: "Blog"});

Ответ 2

h1 = title пытается оценить его локально, название, которое вы отправили, и другое. Чтобы понять разницу, см.:

- var title = 'my title' // - allows writing code
h1 = title

Тот, который вы должны использовать, это:

h1 #{title}

Ответ 3

Вот ответ, который я сделал несколько часов назад на знакомый вопрос (+ сделка с макетом). Он показывает, как передавать данные при рендеринге. (Express 3.0.0)