我刚在视图中设置了我的布局文件夹
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
答案 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');