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

Express配置hbs模板引擎报错TypeError: exphbs is not a function如何解决

报错产生原因

该报错由express-handlebars包的版本变更导致的导出规则变化触发:

  • v6.0.0之前的版本默认导出的是可直接调用的配置函数,你现有的代码写法仅适配该类旧版本
  • v6.0.0及之后的版本默认导出的是对象,可用的配置函数被挂载在对象的engine属性下,直接调用导出的整个对象就会触发类型错误
解决方法

方法1:适配新版本语法(推荐)

修改模块引入和引擎注册逻辑即可:

  1. 调整模块引入代码:
// 旧写法(仅v6之前版本适用)
// const exphbs = require('express-handlebars')
// 新写法(v6及之后版本适用)
const { engine } = require('express-handlebars')
  1. 修改模板引擎注册代码:
app.engine('hbs', engine({ 
  extname: 'hbs',
  defaultLayout: 'mainLayout',
  layoutsDir: __dirname + '/views/layout/'
}))

修改完成后即可正常运行。

方法2:降级到兼容版本

如果不需要使用新版本特性,不想修改现有代码,可以直接将包降级到v5.x的稳定版本:
执行安装命令:
npm install express-handlebars@5.3.5
安装完成后原有代码无需调整即可正常运行。


内容的提问来源于stack exchange,提问作者Samidi Ensertado

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:54:07