GraphQL-js Node/Express:如何在GraphQL查询中传递一个弦乐对象?

问题描述:

我的目标是能够在GraphQL查询中传递一个弦乐对象。GraphQL-js Node/Express:如何在GraphQL查询中传递一个弦乐对象?

目标:

{ 
    accounts (filter: 
     '{"fieldName": "id", 
     "fieldValues":["123"], 
     "filterType":"in"}'){ 
     id 
     } 
} 

错误:

"Syntax Error GraphQL request (1:22) Unexpected single quote character ('), did you mean to use a double quote (\")?" 

问题是GraphQL似乎不接受与单引号括起来的字符串。

在对象中使用单引号是不可能的,因为这将需要对编译这些对象的客户端进行重大更改。

例子:

{ 
"fieldName": "id", 
"fieldValues":["123"], 
"filterType":"in" 
} 

模式:

accounts: { 
    type: new GraphQLList(accountType), 
    args: { 
    id: { type: GraphQLString }, 
    status: { type: GraphQLString }, 
    filter: { type: GraphQLString }, 
    sort: { type: GraphQLString }, 
    }, 
    resolve: (root, args, { loaders }) => loaders.account.load(args), 
}, 

你需要逃避查询字符串中的双qoutes:

{ 
    accounts (
    filter: "{\"fieldName\":\"id\",\"fieldValues\":[\"123\"],\"filterType\":\"in\"}" 
){ id } 
} 
+0

感谢您的输入。不幸的是,这不起作用,因为这仍然需要在客户端进行代码更改。 – JTAN