0

Setting up view engine with handlebars

    const express = require('express');
const mongoose = require('mongoose');
const path = require('path');
const hbs = require('express-handlebars');

const app = express();

Configure mongoose to connect to mongodb

mongoose.connect('mongodb://localhost:27017/1st-cms-db', { useNewUrlParser: true })
.then(response => {
    console.log('Database is connected successfuly')
}).catch(err => {
    console.log('Database connection failled')
})

Setup view engine to use handlbars

    app.engine('handlebars', hbs({ defaultLayouts: true }));
    app.set('view engine', 'handlebars');

THE ERROR I GET IS

    app.engine('handlebars', hbs({ defaultLayouts: true }));
                         ^

TypeError: hbs is not a function
  • The [documentation](https://www.npmjs.com/package/express-handlebars) suggests this should be `app.engine('handlebars', hbs.engine({ defaultLayouts: true }));` – 76484 Jun 14 '22 at 16:46

1 Answers1

0

Make sure install this package: npm install express-handlebars

You can refer to Handles Bars hbs is not a function

Tyler2P
  • 2,324
  • 26
  • 22
  • 31
Rufus
  • 1
  • 2