【问题标题】:GraphQL-js Node/Express: How to pass a stringed object in a GraphQL Query?GraphQL-js Node/Express:如何在 GraphQL 查询中传递字符串对象?
【发布时间】:2017-07-31 04:14:18
【问题描述】:

我的目标是能够在 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),
},

【问题讨论】:

    标签: node.js express graphql-js


    【解决方案1】:

    您需要在查询字符串中转义双引号:

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

    【讨论】:

    • 感谢您的意见。不幸的是,这行不通,因为这仍然需要在客户端更改代码。
    猜你喜欢
    • 2017-08-01
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 2021-06-07
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多