如何在 apollo 的 graphql-gql 中使用从 npm 包导入的自定义 graphQL 类型

Posted

技术标签:

【中文标题】如何在 apollo 的 graphql-gql 中使用从 npm 包导入的自定义 graphQL 类型【英文标题】:How to use custom graphQL types imported from npm package in apollo's graphql-gql 【发布时间】:2019-04-03 05:34:39 【问题描述】:

我不想编写自己的自定义标量类型,我想从库中导入它们。 比如我想要来自this npm package - gnt的UnixTimestamp

在我的typeDefs.js 我尝试这样的事情

import  gql  from 'apollo-server-express'
import  UnixDate  from 'gnt'

export default gql`
type vacation 
  from: $UnixDate
  to: $UnixDate

/* other types and queries */
`

但它不起作用。我得到Error: Type "UnixDate" not found in document.

【问题讨论】:

【参考方案1】:

以这种方式将UnixDate 添加到字段会将标量分配给该特定字段并告诉 GraphQL 如何处理解析它,但它不会显式地将标量添加到模式本身。您仍然需要将标量添加到 typeDefs,如下所示:

export default gql`
  scalar $UnixDate /* use template literal placeholder */

  type vacation 
    from: $UnixDate
    to: $UnixDate
  
  # Other typeDefs
`

【讨论】:

以上是关于如何在 apollo 的 graphql-gql 中使用从 npm 包导入的自定义 graphQL 类型的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Apollo 在后台执行查询?

如何在本地网络上部署带有 apollo 客户端和 apollo-server 后端的 React 应用程序

如何在 vue 组件之外访问“$apollo”?

如何在 Apollo 中关闭 GraphQL 订阅的套接字连接

apollo-ios 如何在磁盘上缓存数据?

apollo (graphQL) - 如何在查询中发送对象数组