具有Express和Handlebars的NodeJs - handlebars.engine未定义

时间:2015-05-29 10:31:33

标签: javascript node.js express handlebars.js viewengine

我正在关注O'Reilly的“使用Node& Express进行Web开发”的教程。

他们使用把手作为视图引擎。

这是我的代码:

var express = require ('express'),
    handlebars = require('express3-handlebars'),
    app = express();

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

我遇到的问题是handlebars.engine未定义,导致运行应用程序时出现“预期的回调函数”错误。

我试过没有运气在网上搜索。

这是一些带把手的遗留语法吗?我的软件包安装正常,我尝试重新安装它们。

是否有针对此的修复/更新代码?

1 个答案:

答案 0 :(得分:1)

你必须从create() - 调用的对象中获取引擎!

像这样: var expHbs = require('express-handlebars'); var handlebars = expHbs.create({ defaultLayout: 'layout', extname: '.hbs', helpers: handlebarsHelpers }); app.engine('.hbs', handlebars.engine); app.set('view engine', '.hbs');

只是说:express3-handlebars已重命名为express-handlebars。你应该考虑转换。