作者:手机用户2502861125 | 来源:互联网 | 2023-02-06 20:20
我知道这已经在这里被问到了,但它没有回答我的问题.我的问题是我们如何分解云函数的index.js,包括onWrite调用等.
我意识到你可以使用"require"并引入外部代码.它仍然在index.js中留下了一些代码(例如,在Franks OCR示例中).
理想情况下,我希望能够将整个onWrite事件触发器移动到另一个文件.
index.js中的示例:
exports.sysQueueUserNew = functions.database.ref("/sys/queue/user_new/{queueId}").onWrite((event) => {
// do something
})
如何将整个函数事件监视/调用移动到另一个js文件,并从index.js调用它?
我的index.js已经变得非常大,为组织目的阅读它已经变成了PAIN.
理想情况下,我希望我的index.js非常有条理,例如:
--in index.js --
/// User cleanup
userHelpers()
/// SYS Logs
sysLogs()
--and in userHelpers.js have the onWrite trigger for example---
functions.database.ref("/sys/queue/user_new/{queueId}").onWrite((event) => {
// create user
})
等等....
这是可能的,而不必像这样编写代码('la Franks OCR示例):
var test = require('./test')
exports.sysQueueUserNew = functions.database.ref("/sys/queue/user_new/{queueId}").onWrite((event) => {
// do something
test.doCleanup()
})
提前致谢....
1> Michael Blei..:
您可以轻松地将功能分布在多个文件中.这是一个例子:
////////////// index.js
exports.sysQueueUserNew = require('./sys-queue-user-new');
exports.userCleanup = require('./user-cleanup');
///////////// sys-queue-user-new.js
const functiOns= require('firebase-functions');
module.exports = functions.database
.ref("/sys/queue/user_new/{queueId}")
.onWrite(e => {
// do something
});
///////////// user-cleanup.js
const functiOns= require('firebase-functions');
module.exports = functions.auth.user().onDelete(e => {
// do something
});
2> eyeezzi..:
作为迈克尔答案的变体,我发现这个组织非常整洁,面向对象.
// index.js
const admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)
const user = require('./user')(admin)
exports.sendWelcomeEmail = user.sendWelcomeEmail
// user.js
const functiOns= require('firebase-functions')
module.exports = function(admin) {
let sendWelcomeEmail = functions.auth.user().onCreate(event => {
// return admin.database().ref().update({})
})
return {
sendWelcomeEmail: sendWelcomeEmail
}
}