nestjs是否支持graphql片段?

时间:2018-12-16 20:42:46

标签: graphql nestjs

我想在我的nestjs项目中使用graphql片段,但是我在官方网站上找不到任何文档。 我试图将片段添加到我的* .graphql文件中:

fragment fragmenName on MyType {
    attribute
}

在服务器启动时,使用所有类型/接口和查询(片段除外)将文件编译(?)到qraphql.ts。 appolo服务器也找不到该片段...

我想念什么吗?

2 个答案:

答案 0 :(得分:0)

Nest是服务器端框架。您不能将片段用作架构定义的一部分-在向服务器发出请求时,片段只能在客户端使用。

答案 1 :(得分:0)

@Daniel的回应迫使我多想一点,我得出以下结论,但我想解释一下。 例如,我有以下类型:

type Car{
   brand:String
   power:String
   doors:Int
   color:String
}

和查询:

type Query {
    car: Car
}

因此,如果我在客户端要问车。我可以这样:

fetch('http://url:port', {
    methode: 'post',
    headers: {...headers}
    body: JSON.stringify({ query: `
        car{
            brand
            color
            power
            doors
        }
    `})
}).then(res => res.json()).then(res=>console.log(res.data));

这将导致我汽车的所有属性。所以现在,如果我喜欢使用片段。我会做的:

fetch('http://url:port', {
    methode: 'post',
    headers: {...headers}
    body: JSON.stringify({ query: `
        car{
            ...wholeCar
        }
        fragment wholeCar on Car{
            brand
            color
            power
            doors
        }
    `})
}).then(res => res.json()).then(res=>console.log(res.data));

要理解的关键是,我需要在查询中,在客户端而不是在服务器上定义片段。