【发布时间】:2018-09-13 18:10:31
【问题描述】:
我正在开发一个 Zapier 应用程序,并且在身份验证期间检索了一个租户 ID(整数),我需要在触发器中使用它。这样做的正确方法是什么?
我尝试过使用全局、bundle.authData 并将数据存储在一个模块中,但似乎没有什么能始终如一地工作。最好的情况是当我将数据存储在全局中时,但它是不一致的,在对触发器的六次调用中,租户 ID 可能只有两次有效,其他四次将返回为未定义。
在全局的情况下,我在身份验证期间写入数据:
const test = (z, bundle) => {
return z.request({
url: URL_PATH + ':' + URL_PORT + '/v1/auth',
params: {
username: bundle.authData.username,
password: bundle.authData.password
}
}).then((response) => {
if (response.status === 401) {
throw new Error('The username and/or password you supplied is incorrect.');
} else {
global.GLOBAL_tenant = response.json.tenant;
// ...
}
}
然后尝试在触发器中读回数据:
const processTransactions = (z, bundle) => {
let jsonAll = [];
let tenant = global.GLOBAL_tenant;
return new Promise( (resolve, reject) => {
(function loop() {
// ...
我也尝试将 dat 添加到 'bundle.authData',这是 Zapier 在联系他们时提出的建议,但我在身份验证期间添加的租户 ID:
bundle.authData.tenant = response.json.tenant
当我尝试在触发器中检索它时不可用。只有“用户名”和“密码”存在。
我是 Zapier 和 node.js 的新手,因此我们将不胜感激任何帮助。
【问题讨论】: