Search code examples
node.jsfirebaseexpresshandlebars.jsexpress-handlebars

'Cannot GET /' in NodeJS Express-Handlebars, What to do?


This is the code

const firebase = require('firebase-admin');
const express = require('express');
const exphbs = require('express-handlebars');

var hbsHelpers = exphbs.create({
    helpers: require("./helpers/handlebars.js").helpers,
    defaultLayout: '',
    extname: '.hbs'
});

const app = express();
app.engine('hbs', hbsHelpers.engine);
app.set('views', './views');
app.set('view engine', 'hbs');

app.get('/', (request, response) => {
    response.render('index.hbs');
});

exports.app = functions.https.onRequest(app);

Everything looks perfect and no errors in terminal/logcat.

But getting output 'Cannot GET /'.

Can someone help me with this? Thanks in advance.


Solution

  • This message occurs Cannot GET / if you don't specify which page it is that you're trying to get. http://localhost:3000/ in this case.

    I was able to fire up your code but I had to disable some import,export and function that I cannot access.

    // const firebase = require("firebase-admin");
    const express = require("express");
    const exphbs = require("express-handlebars");
    const port = 3000;
    
    // var hbsHelpers = exphbs.create({
    //   helpers: require("./helpers/handlebars.js").helpers,
    //   defaultLayout: "",
    //   extname: ".hbs",
    // });
    
    const app = express();
    app.engine("hbs", exphbs.engine());
    app.set("views", "./views");
    app.set("view engine", "hbs");
    
    app.get("/", (req, res) => {
      res.render("index.hbs");
    });
    
    // exports.app = functions.https.onRequest(app);
    
    app.listen(port, () => {
      console.log(`Server is  listening at http://localhost:${port}`);
    });
    

    Folder & File structure:

    enter image description here


    Output: enter image description here