为什么本地模块不会使用 Cloud Functions for Firebase 加载

Why won't local modules load using Cloud Functions for Firebase

我发现 Cloud Functions for Firebase 使用 package.json 文件加载 dependencies,但调用我的函数时出现错误:

Code in file index.js can't be loaded.
Did you list all required modules in the package.json dependencies?
Detailed stack trace: Error: Cannot find module 'express'
    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 Object.<anonymous> (/user_code/rest_api.js:2:17)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)

这是我的 index.js 文件:

const processor = require('./processor.js');

exports.processThing = functions.https.onRequest((req, res) => {
    let param = req.body.param;
    processor.process(param);
});

requiring Node modules 时不包括文件扩展名。您的 require 应该是:

const processor = require('./processor');

Firebase CLI 应该会处理剩下的事情。它将像您的 package.json 需要的依赖项一样捆绑它。

您需要使用以下命令将 express 模块依赖项安装到 package.json 文件中 npm install express 只需确保安装在正确的文件夹中意味着您需要将其安装到 functions 文件夹

喜欢~/NodejsProjects/AMZFIRE/功能$ npm install express

然后你会在package.json

中看到

"dependencies":{

    "express": "^4.16.3"

 }

就是这样!!!