exphbs 不是函数

exphbs is not a function

我一直在尝试测试 express 和 express 车把。我已经阅读并尝试了一些演示。它们基本上都是一样的,但我无法让它们中的任何一个工作。我不断收到的错误是 -

app.engine('handlebars', exphbs()); ^

类型错误:exphbs 不是函数

下面是我的代码:

const express = require("express");
const exphbs = require("express-handlebars");
const app = express();
const port = 8000;

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

// Index Route
app.get("/", function (req, res) {
  res.render("home");
});

app.listen(port, () => {
  console.log(`Server started on port ${port}`);
});

我制作了一个简短的视频来进一步解释 - https://www.awesomescreenshot.com/video/6352907?key=df18cdbdf4ed12b85d2c92458ad9a2de

我认为 const exphbs = require('express-handlebars');被声明为函数

谢谢

exphbs 不是函数你可以试试这个代码..

const express = require('express');
const exphbs  = require('express-handlebars');
 // const { engine }  = require('express-handlebars');
 const app = express();
 const port = 8000;

//Handelbars Middleware
//app.engine('handlebars', engine());
app.engine('handlebars', exphbs.engine());
app.set('view engine', 'handlebars');

// Index Route
app.get('/', function (req, res) {
    res.render('home');
});



app.listen(port, () =>{
  console.log(`Server started on port ${port}`);
});

我认为您应该使用 express-handlebars 中的示例作为参考。要使用此代码,您需要将此行添加到 pacakge.json 文件 "type": "module",(ES6 导入) 祝你好运!

import express from 'express';
import { engine } from 'express-handlebars';

const app = express();

app.engine('handlebars', engine());
app.set('view engine', 'handlebars');
app.set('views', './views');

app.get('/', (req, res) => {
    res.render('home');
});

app.listen(8000);