处理棒hbs不是一个功能

时间:2017-08-19 08:47:00

标签: node.js express handlebars.java

我刚在视图中设置了我的布局文件夹

app.engine('hbs', hbs({extname: 'hbs', defualtLayout : 'layout' , layoutDir: __dirname + '/views/layouts'}));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');

模块使用是

var hbs = require('hbs');

给我以下错误

app.engine('hbs', hbs({extname: 'hbs', defualtLayout : 'layout' , layoutDir: __dirname + '/views/layouts'}));
                  ^

TypeError: hbs is not a function

2 个答案:

答案 0 :(得分:1)

我的工作是将模块更改为

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

答案 1 :(得分:0)

因为hbs模块导出的内容实际上不是函数。

您应该阅读description file of the hbs module并告诉您如何使用它。

  

使用hbs作为默认视图引擎只需要一行代码   你的应用设置。这将在调用res.render时呈现.hbs文件。

app.set('view engine', 'hbs');
     

为模板文件使用不同的扩展名(即html):

app.set('view engine', 'html');

app.engine('html', require('hbs').__express);

另一种方法是使用express-handlebars模块,它可以在你的路上使用。

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

app.set('view engine', 'handlebars');