【问题标题】:GraphQL Nexus - adding custom scalar typeGraphQL Nexus - 添加自定义标量类型
【发布时间】:2019-09-17 05:55:09
【问题描述】:

GraphQL Nexus 是相当新的,并且似乎缺少文档。此外,这些例子也很缺乏。从示例和文档中,我尝试添加自己的 NON-GraphQL 标量类型。我按照文档中的示例创建了自己的标量,但是当我尝试在 objecttype 中调用它时,我得到了 read 下划线。我做错了什么?

【问题讨论】:

    标签: graphql scalar


    【解决方案1】:

    为了解决这个问题,我所做的是: 1. 一旦您创建了自己的标量类型,例如:

     #json.ts **FILE NAME MATTERS**
     export const JSONScalar = scalarType({
     name: "JSON",
     asNexusMethod: "json",
     description: "JSON scalar type",
     ...})
    

    2。一旦我在一个单独的对象中调用了新类型,我必须在我的字段上方添加它才能编译,你可能没有:

      //@ts-ignore
        t.topjson("data");
    

    3。在我的 make 架构中,我首先添加了标量代码:

      const schema = makeSchema({
        types: [JSONScalar, MyObject, BlahObject],
    

    文件的名称非常重要,我认为这是生成模式并查找新类型的方式。我还认为您必须确保首先在 makeSchema 中编译该代码,但是我没有尝试切换顺序,因为我花了很多时间试图弄清楚如何使我自己的标量类型工作。

    对于经验丰富的 Nexus 开发人员来说,这可能是不言自明的,但我是新手,所以这些步骤没有让我知道。

    编码愉快!

    【讨论】:

      【解决方案2】:

      你也可以这样做:

      t.field("data", {type: "JSON"});
      

      这与 TypeScript 完美配合。 我希望他们有更好的示例和文档。他们的示例仅涵盖最琐碎的用例。我非常关注 GraphQL、Prisma、Nexus 和用于庞大数据集的相关工具。因此,我确实遇到了所有限制和缺乏存在的文档。

      但是,可惜我们可以在这里汇集我们的知识。

      【讨论】:

        猜你喜欢
        • 2019-09-29
        • 2019-10-12
        • 2019-06-24
        • 2020-10-01
        • 2021-03-04
        • 2020-08-03
        • 2018-05-29
        • 2020-11-19
        • 2018-10-24
        相关资源
        最近更新 更多