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

配置handlebars模板后nodemon运行报handlebars is not a function如何解决

问题解决方法

该报错几乎均由express-handlebars版本迭代导致的引入、调用方式不匹配导致,可按以下步骤排查修复:

  • 检查依赖引入语法
    express-handlebars v6及以上版本不再默认导出构造函数,旧版本的引入写法会直接触发类型错误:

错误写法(仅适配v5及更早版本):

const handlebars = require('express-handlebars')

新版本正确写法,需从导出对象中解构出engine方法:

const { engine } = require('express-handlebars');
  • 修正模板引擎注册代码
    对应的引擎注册逻辑也要同步调整:

错误写法:

app.engine('hbs', handlebars({ extname: '.hbs' }))

修正后写法:

app.engine('hbs', engine({ extname: '.hbs' }))
  • 若要保留旧写法可降级依赖版本
    不想调整现有代码的情况下,可执行命令安装v5分支的稳定版本:
npm install express-handlebars@5.3.5

安装完成后原有代码即可正常运行。

  • 额外排查项
    如果以上操作完成后仍然报错,执行npm ls express-handlebars检查依赖是否正常安装,确认没有误装其他名称相似的非官方handlebars包。

内容的提问来源于stack exchange,提问作者Marilia Soares

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:06:07