Javascript 在其他架构(SDL)上共享graphql架构的相同类型定义

Javascript 在其他架构(SDL)上共享graphql架构的相同类型定义,javascript,node.js,graphql,apollo-server,graphql-tools,Javascript,Node.js,Graphql,Apollo Server,Graphql Tools,在GraphQL(apollo服务器)中,我们可以使用schema或typedefs和resolvers作为apollo服务器的构造函数。因此,在代码拆分的类型定义中,我们可以选择用户模板文本 const sampleStr=` 类型用户{ _id:id!}` 然后我们在typedef中使用它 const typeDefs=gql` ${smapleStr} 类型查询{ 用户:用户! } ` 这很有效,但不推荐。或者使用graphql工具我们可以在服务器中使用makeExecutableSc

在GraphQL(apollo服务器)中,我们可以使用
schema
typedefs
resolvers
作为
apollo服务器的构造函数。因此,在代码拆分的类型定义中,我们可以选择用户模板文本

const sampleStr=`
类型用户{
_id:id!}`
然后我们在typedef中使用它

const typeDefs=gql`
${smapleStr}
类型查询{
用户:用户!
}
`
这很有效,但不推荐。或者使用
graphql工具
我们可以在服务器中使用
makeExecutableSchema
mergeSchema
函数进行模式粘贴&这完美地模块化了服务器但是假设我在名为
Post.js的模式/模块的
postType
typeDefs中声明了一个
type Post
,如下所示

//post.js
const postType=gql`
类型查询{
…询问
}
类型突变{
addPost(…其他参数):快闪!
}
#//我要共享给其他架构的类型
打字闪光{
成功:布尔!
}
`
现在在我的
other.js
模块中,我想使用
Flash
,它是在
postType
中定义的,如下所示

//other.js
const otherTypeDefs=gql`
类型查询{
测试:闪光!
}
`
是的,它不起作用。我的第一种方法是,我可以将
Flash
保存在字符串中,并从
post.js
导出和导入,但这不是一种很好的方法

现在,如何使用
post.js中
other.js
的模式中的
Flash
或其他更大的
类型

我可以通过扩展它在其他模式中添加额外的字段,或者将其用作另一个模块/模式中其他类型的嵌套类型

注意:我使用的是
apollo server 3.x.x
,默认情况下包括
graphql工具