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

Node.js中Handlebars运行报错hbs is not a function的原因是什么?

报错原因
  • 依赖包引入错误:你当前引入的handlebars是原生模板编译库,导出的是模板编译相关的对象,不是可直接调用的Express模板引擎配置函数,Express生态下要使用封装好的express-handlebars包才能完成引擎注册。
  • 配置参数存在拼写错误:你代码里的extanme属于拼写错误,正确参数名是extname。
解决方案

步骤1:安装正确的依赖包

执行安装命令:

npm install express-handlebars

步骤2:修改引入和配置代码

对应express-handlebars v6.x 及以上版本

// 引入依赖,从express-handlebars中解构出engine方法
const { engine } = require('express-handlebars');

// 注册模板引擎,修正拼写错误的参数
app.engine('hbs', engine({
  extname: '.hbs',
  defaultLayout: 'layout',
  layoutsDir: __dirname + '/views/layout/',
  partialsDir: __dirname + '/views/partials/'
}));
// 配置默认渲染引擎
app.set('view engine', 'hbs');

对应express-handlebars v5.x 及以下版本

// 引入依赖,老版本直接导出可调用的配置函数
const hbs = require('express-handlebars');

// 注册模板引擎
app.engine('hbs', hbs({
  extname: '.hbs',
  defaultLayout: 'layout',
  layoutsDir: __dirname + '/views/layout/',
  partialsDir: __dirname + '/views/partials/'
}));
app.set('view engine', 'hbs');

内容的提问来源于stack exchange,提问作者mohd irfad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:54:06