NodeJS + Express + Handlebars - не удалось найти представление "index.html"

Я немного играл с Node.js. Недавно я начал работать с Express и создавал базовое приложение. Я хотел использовать Handlebars в качестве механизма моделирования шаблонов, но я нажимаю на стену - не удалось найти представление "index.html"

У меня есть index.html в том же каталоге, что и app.js, и поэтому я бы подумал, что код ниже не будет иметь проблем с обнаружением index.html...

Я искал вокруг, но казалось бы, что всеобъемлющие примеры чего-либо, кроме нефрита, редки... У кого-нибудь есть опыт работы с этим комбо?

Спасибо заранее!

var express = require('express')
  , app = express.createServer();

app.configure(function(){
    app.set('view engine', 'handlebars');
    app.set("view options", { layout: false }) 
});



app.get('/', function(req, res){

    var data = {
        name: "Ford Prefect",
        home: "a small planet somewhere in the vicinity of Betelgeuse"
    }

    res.render('index.html', data);
});

app.listen(3000);

Update:

Мне не хватало:

app.set('views', __dirname + '/');
app.register('.html', require('handlebars'));

в моей конфигурации... казалось бы, регистр ".html" весьма важен, поскольку он указывает ассоциацию handlebars с .html...

Я надеюсь, что это поможет кому-то...

Поскольку я SO no, я не могу ответить на свой вопрос в течение 7 часов, но если кому-то нужен полный рабочий пример, я могу опубликовать завтра...

Ответы

Ответ 1

По умолчанию он будет выглядеть в папке с именем views из каталога script. Если вы используете другой каталог, вы должны указать его.

app.set('views', __dirname + '/views');

Экспресс должен также рассказать вам больше информации о том, где он пытается найти представление, которое должно помочь вам точно знать, где оно выглядит.