如何在Zapier"?

时间:2015-08-18 06:14:42

标签: node.js rest callback fetch zapier

在zapier中,我使用了Code By Zapier的动作。它基于node.js.我需要使用fetch来实现我的CRM的REST-API。

以下是我编写的代码,当我使用VS Code(在Zapier之外)尝试时,该代码运行良好:

// the code by zapier includes already the require('fetch')

var api_token = "..."; // my api
var deal_name = "Example"; // a string

fetch("https://api.pipedrive.com/v1/deals/find?term="+deal_name+"&api_token=" + api_token)
  .then(function(res) {
    return res.json();
  }).then(function(json) {
     var deal_id = json.data[0].id;
     console.log("deal_id="+deal_id);
  }).catch(function(error) {
     console.log("error");
  });

output = {id: 1, hello: "world"}; // must include output...

我从Zapier得到的错误是:

  

如果您正在执行异步(使用fetch库),则需要使用a   回调!

请帮我解决。

1 个答案:

答案 0 :(得分:-1)

Zapier知道,fetch是一个异步函数。您必须使用回调函数而不是输出变量。



// bad code
fetch(url)
  .then(function(res) {
    return res.json();
  }).then(function(json) {
    // when i run this in my node repl it works perfect!
    // the problem is this doesn't return the data to zapier
    // it just prints it to the system output
    console.log(json);
  });

// good code
fetch(url)
  .then(function(res) {
    return res.json();
  }).then(function(json) {
    // but if i swap this to callback, this works perfect in zapier
    callback(null, json);
  });