【发布时间】:2021-03-01 22:23:20
【问题描述】:
我正在将我的云功能拆分为单独的文件,以便延迟加载一些依赖项并减少冷启动。
基本上,我正在尝试从 here 复制 Doug 的答案,但不必为每个函数创建单独的文件。
在我的 index.js 文件中:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.createStripeCustomer = functions.auth.user().onCreate(async (user) => {
const { createUser } = require('./user/main');
await createUser(user, admin);
});
在我的 'user/main.js' 文件中:
const functions = require('firebase-functions');
const { Stripe } = require('stripe');
const stripe = new Stripe(functions.config().stripe.secret);
const endpointSecret = functions.config().stripe.singing;
const createStripeCustomer = async (user, admin) => {
// Do some stuff
};
module.exports = { createUser: createStripeCustomer };
这种拆分背后的意图是,我有一些需要 Stripe 的功能,而另一些不需要,因此我不希望它们都不必要地加载它,但是在参数列表之后出现错误-“缺失” ”。
关于哪里出了问题有什么建议吗?
【问题讨论】:
-
错误消息应该有一个行号,显示错误发生的位置。
-
错误消息:"SyntaxError: missing) 在 Module._compile (internal/modules/cjs/loader.js) 的 wrapSafe (internal/modules/cjs/loader.js:915:16) 的参数列表之后:963:27) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) 在 Module.load (internal/modules/cjs/loader.js:863:32) 在 Function .Module._load (internal/modules/cjs/loader.js:708:14) 在 Module.require (internal/modules/cjs/loader.js:887:19) 在 require (internal/modules/cjs/helpers.js :74:18) "
-
那么请看
loader.js的第915行。 -
您是否知道我在哪里可以找到该文件,因为它是某种内部 Cloud Functions 文件? (我在 Firebase 函数控制台的“日志”部分看到了错误,如果这有什么不同的话)
-
如果这种情况发生在您未编写的脚本中,它可能需要比您正在运行的版本更新的 node.js。
标签: javascript node.js firebase google-cloud-functions