1

我正在尝试借助以下代码和读取我在 shopify 后端上传的文件:

const shopify = new Shopify({
  shopName: process.env.STORE_NAME,
  apiKey: process.env.API_KEY,
  password: process.env.STORE_PASSWORD,
});
const query = `{
  files {
    edges {
      node {
        alt
      }
    }
  }
}`;
shopify
  .graphql(query)
  .then((files) => console.log(files))
  .catch((err) => console.error(err));

但我遇到了这个错误

Error: Field 'files' doesn't exist on type 'QueryRoot'
 at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  locations: [ { line: 2, column: 7 } ],
  path: [ 'query', 'files' ],
  extensions: { code: 'undefinedField', typeName: 'QueryRoot', fieldName: 'files' },
  response: <ref *1> PassThrough 
}

请如果有人可以帮助我,我将非常感激。谢谢!

4

1 回答 1

-1

更新:您没有使用官方 Shopify 库。您遇到的真正问题是您当前使用的库不支持 Shopify 文件查询。

您应该使用@shopify/shopify-api直接从 Shopify 访问 API 的最新更新。我的其余回复基于使用官方库连接Shopify graphql 文件


错误消息是错误的。您的查询的问题是所有shopify graphql API的基本规则“您不能使用graphql一次性询问所有元素”,您应该分页和/或至少声明您希望接收多少个第一个或最后一个元素“。

用这个:

{
  files(first:250) {
    edges {
      node {
        alt
      }
    }
  }
}

如果您真的需要全部,请使用bulkOperationRunQuery以异步方式存在。

EXTRA:我更喜欢先在 Postman 上制定我的 graphql 操作,msg 错误很清楚,我可以专注于编写好的 graphql,当我对结果感到满意时,我会将其应用到我的代码中。它对我加速发展有很大帮助。

于 2021-12-11T22:04:21.643 回答