Shopify API Node/Express 无法读取未定义属性(读取'Rest')

5

我刚开始使用Shopify,并尝试下单。根据Shopify API文档,这是我的代码:

const Shopify = require('@shopify/shopify-api');

const client = new Shopify.Clients.Rest('my-store.myshopify.com', 
process.env.SHOPIFY_KEY);

module.exports.getShopifyOrderById = async (orderId) => {
return await client.get({ 
    path: `orders/${orderId}`,
  });
}

执行这段代码时,我遇到了以下错误:

TypeError: Cannot read properties of undefined (reading 'Rest')

似乎无法确定问题所在。
1个回答

10

你需要使用对象解构来获取Shopify对象,或者像下面这样使用默认导出。

const { Shopify } = require('@shopify/shopify-api');

const client = new Shopify.Clients.Rest('my-store.myshopify.com', 
process.env.SHOPIFY_KEY);

或者

const Shopify = require('@shopify/shopify-api').default;

const client = new Shopify.Clients.Rest('my-store.myshopify.com', 
process.env.SHOPIFY_KEY);

或者

const ShopifyLib = require('@shopify/shopify-api');

const client = new ShopifyLib.Shopify.Clients.Rest('my-store.myshopify.com', 
process.env.SHOPIFY_KEY);

这与ES6模块在CommonJS中的模拟方式以及如何导入模块有关。您可以在此处阅读相关内容


2
真是不可思议,在官方Shopify文档中找到这个信息有多么困难。几乎没有提到这一行代码:const { Shopify } = require('@shopify/shopify-api'); - Tajs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接