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

运行nodemon报TypeError: handlebars is not a function错误怎么解决?

报错触发原因

你安装的express-handlebars为v6.0及以上版本,该版本做了不兼容的导出规则变更:不再默认导出可直接调用的构造函数,因此直接执行handlebars()会抛出「不是函数」的类型错误。

修复方案

有两种修复方式可选:

方式1:适配高版本API(推荐)

修改导入和模板引擎注册的代码即可,无需降级依赖:

// 将原来的导入语句替换为解构导出的engine方法
const { engine } = require('express-handlebars');
const app=express();

// 注册模板引擎时直接调用engine方法
app.engine("handlebars",engine({defaultLayout:'main'}));
app.set('view engine','handlebars');

如果需要更复杂的配置,也可以用官方推荐的create方法初始化:

const expressHandlebars = require('express-handlebars');
const hbs = expressHandlebars.create({defaultLayout:'main'});

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

方式2:降级依赖到兼容旧写法的版本

如果不想修改业务代码,可以将express-handlebars降级到v5.x版本,执行以下安装命令即可:
npm install express-handlebars@5.3.4
降级完成后原有代码可直接正常运行。

内容的提问来源于stack exchange,提问作者Yuri Schneider

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:45:01