Firebase函数从其他文件导入函数--javascript

时间:2018-05-09 02:25:21

标签: javascript firebase google-cloud-functions

我用javascript构建firebase功能。现在我有很多内部调用函数,我打算将这些函数移动到不同的文件中以避免index.js变得非常混乱。

以下是当前的文件结构:

/functions
   |--index.js
   |--internalFunctions.js
   |--package.json
   |--package-lock.json
   |--.eslintrc.json

我想知道:

1)如何从internalFunctions.js导出函数并将其导入index.js。

2)如何从index.js调用internalFunctions.js函数。

我的代码是用JavaScript编写的。

被修改

internalFunction.js将具有多个功能。

1 个答案:

答案 0 :(得分:7)

首先在文件中设置功能:

<强> internalFunctions.js:

module.exports = {
    HelloWorld: function test(event) {
        console.log('hello world!');
    }
};

或者如果你不喜欢乱花括号:

module.exports.HelloWorld = function(event) {
    console.log('hello world!');
}

module.exports.AnotherFunction = function(event) {
    console.log('hello from another!');
}

您还可以使用其他样式: https://gist.github.com/kimmobrunfeldt/10848413

然后在 index.js 文件中将文件导入为模块:

const ifunctions = require('./internalFunctions');

然后您可以直接在触发器或HTTP处理程序中调用它:

ifunctions.HelloWorld();

示例:

//Code to load modules 
//...
const ifunctions = require('./internalFunctions');

exports.myTrigger = functions.database.ref('/myNode/{id}')
    .onWrite((change, context) => {

      //Some of your code...        

      ifunctions.HelloWorld();

      //A bit more of code...

});