javascript Handlebars exphbs不是函数

xuo3flqw  于 2023-05-16  发布在  Java
关注(0)|答案(2)|浏览(131)

错误为“app.engine(“handlebars”,exphbs());'类型错误:exphbs不是函数
在对象'”

const express = require('express')
const exphbs = require("express-handlebars");
const path = require("path");
const app = express()
const port = 3000

app.engine("handlebars", exphbs());
app.set("view engine", "handlebars");
yv5phkfx

yv5phkfx1#

exphbs不是一个函数,它是一个由handlebars导出的对象(参见documentation)。你想使用的函数是exphbs.engine(),如下所示:

app.engine("handlebars", exphbs.engine());

或者,您可以解构对象并直接取出engine

const express = require('express')
const { engine } = require("express-handlebars");
const path = require("path");
const app = express()
const port = 3000

app.engine("handlebars", engine());
app.set("view engine", "handlebars");
c9qzyr3d

c9qzyr3d2#

我认为可能是exphbs函数没有正确安装或导入:

npm install express-handlebars

使用以下命令导入:

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

如果不是这种情况,并且您已正确安装并导入了它。然后查看更新到最新版本是否修复了该问题:

npm update express-handlebars

编辑:现在我想起来了,你需要调用exphbs上的engine()函数来获得实际的函数,你可以用它来在Express应用程序中注册把手模板引擎。
正确的代码应该是:

const express = require('express')
  const exphbs = require("express-handlebars");
  const path = require("path");
  const app = express()
  const port = 3000

  app.engine("handlebars", exphbs.engine());
  app.set("view engine", "handlebars");

相关问题