结果必须是数组,got: object in Zapier?

Results must be an array, got: object in Zapier?

我正在 Zapier 中使用搜索。我有自己的 API,当我按项目 ID 搜索项目时,它会发送一个对象。

以下是来自 API

的回复
{
    "exists": true,
    "data": {
        "creationDate": "2019-05-23T10:11:18.514Z",
        "Type": "Test",
        "status": 1,
        "Id": "456gf934a8aefdcab2eadfd22861",
        "value": "Test"
    }
}

当我通过 zap 搜索此内容时

Results must be an array, got: object, ({"exists":true,"data":{"creationDate":"2019-05-23T10:11:18.514Z)

下面是代码

module.exports = {
    key: 'item',
    noun: 'itemexists',
    display: {
        label: 'Find an item',
        description: 'check if item exist'
    },

    operation: {.
        inputFields: [
            {
                key: 'itemid',
                type: 'string',
                label: 'itemid',
                helpText: 'Eg. e3f1a92f72c901ffc942'
            }
        ],

        perform: (z, bundle) => {
            const url = 'http://IP:8081/v1/itemexists/';
            const options = {
                params: {
                    itemId: bundle.inputData.itemid
                }
            };


            return z.request(url, options)
                .then(response => JSON.parse(response.content));
        },
        sample: {
            "exists": true,
            "data": {
                "creationDate": "2019-05-23T10:11:18.514Z",
                "Type": "Test",
                "status": 1,
                "Id": "456gf934a8aefdcab2eadfd22861",
                "value": "Test"
    }
},
    }
};

您 return 执行的数据必须是“数组”类型(以 [ 开头)。您 return 编辑了一个对象(一个以 [=12 开头的结构) =]).

修复非常简单 - 将您的 returned 数据放在方括号中。

.then(response => [JSON.parse(response.content)]); // note the added `[]`

// or, if you don't care about the `exisits` key
.then(response => {
  const data = JSON.parse(response.content)
  return [data.data]
});