TypeError: handlebars is not a function

Viewed 7788
3 Answers
Problem

You initialization of engine on line 8 is wrong.

Solution

Please change it to app.engine('handlebars', engine());. Check the snippet below.

Implementation
const express = require('express');
const { engine } = require ('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(3000);
Reference

Insert .engine after handlebars, look:

app.engine('handlebars', handlebars.engine({ defaultLayout: 'main' }));

const { engine } = require("express-handlebars");

app.engine( "hbs", engine({ extname: "hbs", defaultLayout: false, layoutsDir: "views/layouts/", }) );

Related