Firebase 函数从其他文件导入函数 - javascript
Posted
技术标签:
【中文标题】Firebase 函数从其他文件导入函数 - javascript【英文标题】:Firebase Function import function from other file - javascript 【发布时间】:2018-10-19 01:22:23 【问题描述】:我正在使用 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 将有多个函数。
【问题讨论】:
已经在这里回答:***.com/questions/43486278/… 哪一个是合适的解决方案?因为接受的答案的评论实际上告诉了我的担忧,我不想在 index.js 中再次导出 internalFunctions.js 函数。我只想从 index.js 调用 internalFunctions.js 中的函数。 对不起,我应该更明确一点,我添加了一个答案,您可以看到导入与帖子相同,只是您需要使用不同的方式。 【参考方案1】:首先在文件中设置函数:
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...
);
【讨论】:
我还有一个问题,如何从 internalFunctions 调用 internalFunctions 的函数? (在同一个文件中) 使用module.exports.HelloWorld();
或只使用exports.HelloWorld();
我的意思是,在 HelloWorld() 函数中,我想调用 AnotherFunction() 来处理某些东西,我该如何调用它?
是的,在 internalFunctions.js 的函数中,您可以使用 module.exports.HelloWorld();调用本地函数。
如果您不喜欢它,您可以使用另一种方式声明和导出您的函数,例如答案链接中提供的函数:gist.github.com/kimmobrunfeldt/10848413以上是关于Firebase 函数从其他文件导入函数 - javascript的主要内容,如果未能解决你的问题,请参考以下文章
从其他文件夹导入模块:如何在 Spyder 或 PyCharm 中显示函数参数?
在 Flutter 中调用 Firebase 函数时出现 CloudFunctionsException