【问题标题】:Shopify read files from the backendShopify 从后端读取文件
【发布时间】:2022-01-15 21:12:18
【问题描述】:

我正在尝试借助此代码和library 读取我在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 
}

如果有人可以帮助我,我将不胜感激。 谢谢!

【问题讨论】:

    标签: node.js graphql shopify shopify-api shopify-api-node


    【解决方案1】:

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

    使用这个:

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

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

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

    【讨论】:

    • 也出现同样的错误。我已经更新了问题中的错误。
    • 您似乎在使用店面 API,这是您喜欢使用的 API 还是您尝试使用管理 API?
    • 这个库是不是暴露了管理API,你有什么想法或者如何使用管理API吗?
    • 我使用 apollo 客户端与他们的节点应用程序示例中的 shopify 使用相同,如果您处于开发的早期阶段,我建议您将项目迁移到 shopify cli shopify.dev/apps/tools/cli 它易于启动且非常灵活使用您自己的代码和功能进行扩展。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多