无法使用Express Handlebars在目录中查找视图

时间:2014-10-19 19:26:30

标签: node.js express handlebars.js

我遵循您从Express Generator获得的基本应用布局,并尝试为Handlebars配置它。

段:

var exphbs = require('express-handlebars');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views/'));

app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');

一切顺利,直到我尝试将Handlebars的扩展名更改为.hbs,如下所示:

app.engine('handlebars', exphbs({defaultLayout: 'main', extname: '.hbs'}));

(并重命名文件)。

结果是:

  

错误:无法查找视图"错误"在视图目录

我在express-handlebars.js源代码中查看了function ExpressHandlebars(config),它确实试图恰当地设置extname。

我做错了什么?

2 个答案:

答案 0 :(得分:18)

有点违反直觉,设置扩展名是不够的。

所需的设置是:

app.engine('hbs', exphbs({defaultLayout: 'main', extname: '.hbs'}));
app.set('view engine', 'hbs');

答案 1 :(得分:1)

在views目录中创建error.hbs文件解决了我的问题。

 var exphbs = require('express-handlebars');

    // view engine setup
app.engine('hbs', exphbs({ defaultLayout: 'main', extname: '.hbs' }));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');