exhbs не является функцией

#node.js #express #handlebars.js #express-handlebars

#node.js #выразить #handlebars.js #экспресс-рули

Вопрос:

Я пытался протестировать экспресс и экспресс-рули. Я прочитал и попробовал несколько демонстраций. Все они в основном одинаковы, но я не могу заставить ни одного из них работать. Ошибка, которую я продолжаю получать, это —

app.engine(‘handlebars’, exhbs()); ^

Ошибка типа: exhbs не является функцией

вот мой код ниже:

 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’); был объявлен функцией

Спасибо

Ответ №1:

Я думаю, вам следует использовать example в качестве ссылки из 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);
 

Ответ №2:

exhbs не является функцией, и вы можете попробовать этот код..

 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}`);
});
 

Комментарии:

1. работал как шарм, но несколько месяцев назад я смог запустить этот код? Я вроде как новичок в этом, но это const exphbs = require(‘express-handlebars’); и функция. Спасибо