GraphQL Nexus-添加自定义标量类型

时间:2019-03-08 11:44:14

标签: graphql scalar

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

2 个答案:

答案 0 :(得分: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开发人员来说,这可能是不言而喻的,但是我是新手,因此这些步骤使我无所适从。

编码愉快!

答案 1 :(得分:0)

您也可以这样做:

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

与TypeScript完美配合。 我希望他们有更好的示例和文档。他们的示例仅涵盖最琐碎的用例。我非常关注GraphQL,Prisma,Nexus和相关工具,以获取庞大的数据集。因此,我实际上遇到了所有限制和缺少的现有文档。

但是a,我们可以在这里集中我们的知识。