Firebase功能无法找到哈巴狗

时间:2018-05-29 08:35:30

标签: node.js firebase pug google-cloud-functions

我有一个简单的firebase函数,可以呈现一个哈巴狗模板。

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const creds = {
    projectId: "retnikt-blog",
    privateKey: "-----BEGIN PRIVATE KEY-----\n REDACTED \n-----END PRIVATE KEY-----\n",
    clientEmail: "REDACTED@REDACTED.iam.gserviceaccount.com"
};

admin.initializeApp({credential: admin.credential.cert(creds)});
const app = require("express")();
const pug = require("pug");
app.engine('pug', pug.__express);
app.set('view engine', 'pug');
app.set('views', '../views');

exports.myFunction = functions.https.onRequest((req, res) => {
    res.render('blog.pug', {
        title: 'title',
        body: 'body',
        author: 'author',
        date: 'date',
        categories: 'categories',
        tags: 'tags'
    });
});

当我运行此功能时,它会告诉我Error: Cannot find module 'pug'。我已经在项目的根目录中安装了NPM和我的package.json依赖项,我已经指定了pug:

"dependencies": {
    ...
    "pug": "2.0.3"
}

我在全球范围内安装了Pug,现在它在本地工作,但是当我部署它时,只是给出了#34;错误:无法处理请求" 500状态。

我的两个问题是: A)为什么安装的哈巴狗不被识别, 和 B)"无法处理请求"还因为哈巴狗没有得到承认?

编辑:查看日志后,显示这是正确的

NodeJs v8.10.0 firebase-tools 3.18.5

1 个答案:

答案 0 :(得分:1)

pug必须是您在packages.json文件中的依赖项,而不是在根目录中。