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');
Экспресс должен также рассказать вам больше информации о том, где он пытается найти представление, которое должно помочь вам точно знать, где оно выглядит.