You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用express-handlebars创建模板?exphbs函数不存在问题求助

解决express-handlebars中exphbs函数不存在的问题

问题出在express-handlebars v4及以上版本的导出方式变更——不再默认导出可直接调用的函数,而是需要通过create()方法初始化引擎。

解决方案:修改代码中的引擎配置

方法1:解构获取create函数

const { create } = require('express-handlebars');

const app = express();

// 初始化handlebars引擎
const hbs = create({ /* 可选配置项,比如默认布局、后缀名等 */ });
app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');

方法2:直接调用默认导出的create方法

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

const app = express();

// 改用create()初始化引擎
app.engine('handlebars', exphbs.create().engine);
app.set('view engine', 'handlebars');

额外检查项

  • 确保项目根目录下存在views文件夹,且里面有layouts子文件夹,layouts中包含默认布局文件main.handlebars(内容至少要有{{{body}}}来渲染页面主体)。
  • 若不需要默认布局,可在create时配置defaultLayout: false:
const hbs = create({ defaultLayout: false });

内容的提问来源于stack exchange,提问作者Felipe Petraglia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 04:25:56