NodeJS + Express + Handlebars - 无法找到视图"index.html"

mat*_*ell 16 templates node.js express handlebars.js

我一直在玩Node.js. 我最近开始玩Express并且已经开始设置一个基本的应用程序.我想使用Handlebars作为我的视图模板引擎,但是我正在撞墙 - 找不到视图"index.html"

我在与app.js相同的目录中有index.html,所以我认为下面的代码在定位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);
Run Code Online (Sandbox Code Playgroud)

更新:

我失踪了:

app.set('views', __dirname + '/');
app.register('.html', require('handlebars'));
Run Code Online (Sandbox Code Playgroud)

在我的配置中...似乎'.html'的寄存器非常重要,因为它指定了与.html的把手关联......

我希望这可以帮助别人...

因为我是一个SO菜鸟,我不能回答我自己的问题7小时,但如果有人需要完整的工作示例,我明天可以发帖...

fen*_*ent 17

默认情况下,它将查看views从脚本所在目录调用的文件夹.如果您使用其他目录,则必须指定它.

app.set('views', __dirname + '/views');
Run Code Online (Sandbox Code Playgroud)

Express还应该告诉您有关它在何处尝试查找视图的更多信息,这应该可以帮助您准确了解它的位置.