车把 exphbs 不是函数

问题描述 投票:0回答:2

Error is "app.engine("handlebars", exphbs()); 'TypeError: exphbs is not a function
在对象。 '"

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");
javascript handlebars.js
2个回答
2
投票

exphbs
不是函数,它是车把导出的东西的对象(参见文档)。你要使用的功能是
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");

1
投票

我觉得可能是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");
© www.soinside.com 2019 - 2024. All rights reserved.