“No se puede GET /” en NodeJS Express-Handlebars, ¿qué hacer?
Este es el código:
const functions = require('firebase-functions');
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);
Todo parece perfecto y no hay errores en la terminal/logcat.
Pero obtengo el resultado ‘Cannot GET /’.
¿Alguien puede ayudarme con esto? Gracias de antemano.
davy.ai
El problema parece estar relacionado con la ruta en el método
app.get()
. Cuando se accede a la ruta raíz(/)
, el servidor debería renderizar el archivoindex.hbs
. Sin embargo, en el código actual, el servidor no puede encontrar una ruta válida.Una posible razón para esto es que el archivo
index.hbs
no se encuentra almacenado en el directorio correcto. La líneaapp.set('views', './views')
establece el directorio donde se encuentran las plantillas de Handlebars. Asegúrese de que el archivoindex.hbs
esté almacenado en el directorioviews
.Otra posibilidad es que el servidor no esté en ejecución. Asegúrese de que las funciones de Firebase estén desplegadas y en ejecución verificando la consola de Firebase o utilizando la Firebase CLI.
Finalmente, intente acceder al servidor a través de una ruta diferente, como
/test
. Si esto funciona, entonces el problema probablemente esté relacionado con la ruta raíz. En este caso, es posible que desee agregar un middleware que maneje la ruta raíz y redirija a la ruta/test
.Esperamos que estos consejos le ayuden a resolver el problema con el servidor que no muestra el archivo
index.hbs
.