簡體   English   中英

如何在 graphql-js 中為 object 類型定義解析器?

[英]How can I define resolver for object type in graphql-js?

我的應用程序中有許多 graphql 類型。

我使用 graphql-js 來構建它們。

// example
const TruckDriver: GraphQLObjectType = new GraphQLObjectType({
  name: 'TruckDriver',
  fields: () => ({
    id: { type: GraphQLString },
  }),
})

然后我在不同的查詢和突變中導入這些類型來定義返回值的類型。

但是我的解析器不返回對象,它們返回字段信息位於嵌套屬性“信息”中的類的實例。 例如上面的解析器將返回

{
   info: {
     id: '123'
   }
   ...
}

我想在我的類型中添加解析器,但我發現類型沒有解析器。

如何輕松實現 object 類型的字段數據解析邏輯?

您可以為每個單獨的字段指定一個解析器,如下所示:

const TruckDriver: GraphQLObjectType = new GraphQLObjectType({
  name: 'TruckDriver',
  fields: () => ({
    id: {
      type: GraphQLString
      resolve: truck => truck.info.id
    },
  }),
})

或修改 Query 和 Mutation 字段的解析器以返回適當形狀的對象。 就像是

async function resolve () {
  const trucks = await getTrucks()
  return trucks.map(truck => truck.info)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM