Я не могу использовать fetchSync на маршруте API. Что мне нужно изменить в настройках Shopify

Я не могу получить данные из своего API-интерфейса Storefront с помощью метода queryShop, который поставляется с маршрутом API. Сам маршрут работает нормально. Я могу использовать fetchSync (функция выборки из водородного фреймворка) для выборки по определенному маршруту. Но всякий раз, когда я использую queryShop для извлечения чего-либо из моего магазина, он выдает эту ошибку ниже

      Error processing route: http://localhost:3000/api/test
TypeError: fetch failed
    at Object.fetch (node:internal/deps/undici/undici:14062:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async eval (/node_modules/@shopify/hydrogen/dist/esnext/utilities/fetch.js:15:26)
    at async queryShop (/node_modules/@shopify/hydrogen/dist/esnext/utilities/apiRoutes.js:111:16)
    at async Object.api [as resource] (/src/routes/api/test.server.ts:4:15)
    at async Module.renderApiRoute (/node_modules/@shopify/hydrogen/dist/esnext/utilities/apiRoutes.js:119:20)
    at async processRequest (/node_modules/@shopify/hydrogen/dist/esnext/entry-server.js?v=f2dfe530:184:25)   
    at async handleRequest (/node_modules/@shopify/hydrogen/dist/esnext/entry-server.js?v=f2dfe530:163:20)                      

Я знаю, что проблема в настройках моего магазина Shopify. Потому что, когда я заменю конфигурацию магазина на магазин предварительного просмотра водорода, он будет работать.

      export default defineConfig({
   shopify: {
      storeDomain: "hydrogen-preview.myshopify.com",
      storefrontToken: "3b580e70970c4528da70c98e097c2fa0",
      storefrontApiVersion: "2022-07",
   },
})

      // components/Test.client.tsx
import {
   fetchSync
} from "@shopify/hydrogen"
             
const Test = () => {
   const response = fetchSync("/api/test")

   console.log(response)
  return (
    <div>Test</div>
  )
}
export default Test
      import { HydrogenApiRouteOptions, HydrogenRequest } from "@shopify/hydrogen";

export async function api(request: HydrogenRequest, {queryShop}: HydrogenApiRouteOptions) {
   console.log(await queryShop({ query: `query ShopName { shop { name } }`,}))
   return "test"
 }


Я ожидал, что результат имени магазина будет получен методом queryShop.

0 ответов

Другие вопросы по тегам