0

J'essaie actuellement de déployer un site Web en utilisant les fonctions Cloud pour Firebase et les fonctionnalités d'hébergement de Firebase. Cependant, je rencontre actuellement un bug étrange après le déploiement réussi de mon application dans Firebase.L'application Node.js n'est pas en mesure de rendre hbs dans les fonctions Cloud pour Firebase

L'application fonctionne parfaitement lorsque je teste dans localhost en utilisant firebase serve --only functions,hosting

Mais après le déploiement lorsque je tente d'accéder à mon URL d'hébergement. Je reçois cette erreur dans mes fonctions cloud journaux:

Error: Cannot find module 'hbs' 
    at Function.Module._resolveFilename (module.js:469:15) 
    at Function.Module._load (module.js:417:25) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at new View (/user_code/node_modules/express/lib/view.js:79:30) 
    at EventEmitter.render (/user_code/node_modules/express/lib/application.js:570:12) 
    at ServerResponse.render (/user_code/node_modules/express/lib/response.js:971:7) 
    at /user_code/routes/homepage.js:7:9 
    at Layer.handle [as handle_request] (/user_code/node_modules/express/lib/router/layer.js:95:5) 
    at next (/user_code/node_modules/express/lib/router/route.js:137:13) 

Voilà comment j'ai mis mes app.js en functions folder:

const functions = require('firebase-functions'); 
const path = require('path'); 
const express = require('express'); 
const handlebars = require('express-handlebars'); 
const homepage = require('./routes/homepage'); 

const app = express(); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.engine('handlebars', handlebars({defaultLayout: 'layout'})); 
app.set('view engine', 'handlebars'); 

app.use('/',homepage); 

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

Ceci est mon homepage.js:

const express = require('express'); 
const homepageRouter = express.Router(); 


/* GET Homepage. */ 
homepageRouter.get("/", function (req, res, next) { 
    console.log('I was called'); 
    res.render('./homepage/homepage.hbs'); 
}); 


module.exports = homepageRouter; 

Voici ma structure de dossiers:

folder-structure-image

Maintenant, puisque l'erreur-logs, il a dit ceci: at /user_code/routes/homepage.js:7:9

Je pensais que cette ligne de code est à l'origine du problème: res.render('./homepage/homepage.hbs'); en homepage.js Mais je ne suis pas en mesure de comprendre le problème, car il fonctionne lorsque vous essayez tester dans l'hôte local.

Je pense qu'il me manque quelque chose. Toute suggestion de conseil serait appréciée.

Répondre