FirebaseのCloud機能とfirebaseの機能を使用してWebサイトを展開しようとしています。しかし、私は現在、firebaseにアプリケーションを正常にデプロイした後、奇妙なバグを経験しています。私はNode.jsアプリケーションがFirebaseのCloud機能でhbsをレンダリングできません
firebase serve --only functions,hosting
を使用してしかし、私は私のホスティングURLにアクセスしようとすると、展開した後はlocalhostでそれをテストするとき
アプリが完璧に動作します。私は、クラウド機能のログにこのエラーが表示されます。
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)
これは私がfunctions folder
で私app.jsを設定している方法です:これは
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);
私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;
これは私のフォルダ構造です:
は今エラーログには、このことを言ったので、:homepage.js
にres.render('./homepage/homepage.hbs');
しかししようとしたとき、私はそれが動作するので、問題を把握することはできませんよ。私はこのコード行が問題を引き起こしていると思っ
at /user_code/routes/homepage.js:7:9
localhostでテストします。
私は何かが足りないと思う。アドバイスの提案は高く評価されます。