Node.js调用Shopify GraphQL API报错:Variable id提供无效值
修复Shopify GraphQL查询中“Variable id of type ID! was provided invalid value”错误
错误原因很明确:你的GraphQL查询定义了直接接收$id作为顶级变量,但Node.js代码里错误地把id嵌套在了input对象中,导致Shopify无法正确识别传入的ID值。
你的查询语句是正确的:
export const VIEW_PRODUCT_METAFIELD = ` query VIEW_METAFIELD($id: ID!){ myProduct: product(id: $id) { metafield(namespace:"custom", key:"myfield"){ namespace key value updatedAt } } } `
只需要修正变量传递的结构,去掉多余的input嵌套,直接将id作为variables的顶级属性即可:
修正后的Node.js代码:
var shopifyId = `gid://shopify/Product/${product_id}`; var isFull = await client.query({ data: { query: VIEW_PRODUCT_METAFIELD, variables: { id: shopifyId } } });
或者简化写法:
var isFull = await client.query({ data: { query: VIEW_PRODUCT_METAFIELD, variables: { id: `gid://shopify/Product/${product_id}` } } });
补充说明:只有当你的GraphQL操作(mutation/query)明确定义了input类型的变量时,才需要将参数嵌套在input对象中。你的查询直接接收$id作为独立变量,所以变量结构必须和定义对应。
内容的提问来源于stack exchange,提问作者TheDeveloperFrontend
相关产品推荐
相关产品推荐

