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

NodeJs with Express and Handlebars - handlebars.engine is undefined

我正在学习 Ethan Brown 在 O'Reilly 的 "Web Development with Node & Express" 中的教程。

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

这是我的代码:

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

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

我遇到的问题是 handlebars.engine 未定义,导致 运行 应用程序出现 "Callback function expected" 错误。

我试过在线搜索,但没有成功。

这是一些带有把手的旧语法吗?我的包已经安装好了,我已经尝试重新安装它们。

是否有 fix/updated 代码?

您必须从 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。你应该考虑转换。