解决方案和Typedefs的文件夹结构的最佳实践解决歧义

发布于 2025-01-25 01:28:40 字数 890 浏览 0 评论 0原文

我正在为Apollo-GraphQL项目上的文件夹结构进行最佳实践。现在,我有一个包含解析器和模式文件夹的GraphQL文件夹,这是为了使所有内容分开。但是,在我的解析器文件夹中,我需要每个TypeDef的新打字稿文件。 (请参阅照片)

[![Enter Image Description] [2]] [2]

但是,在我的索引文件中,我在此

/src/graphql/resolvers/index.ts

export *from "./Category"
export * from "./Product"

中放了我获取以下错误 “ ./category”已经导出了一个名为'Resolvers'的成员。 歧义。

考虑明确

重新出口以解决

import { ApolloServer } from 'apollo-server'
import { context } from './graphql/context'
import {typeDefs} from "./graphql/Schema/index"
import {resolvers} from "./graphql/resolvers/index"


new ApolloServer({ resolvers, typeDefs, context: context }).listen(
    { port: 4000 },
    () =>
      console.log(`
  
              

I am working on best practices for folder structure on an apollo-graphql project. Right now I have a graphql folder that contains both a Resolvers and Schema Folder, this is to keep everything separate. However, Within my Resolvers folder I want a new Typescript file for each Typedef. (See photo)

enter image description here

[![enter image description here][2]][2]

However, in my Index file I put in this

/src/graphql/resolvers/index.ts

export *from "./Category"
export * from "./Product"

However, I get the following error
"./Category" has already exported a member named 'resolvers'. Consider explicitly re-exporting to resolve the ambiguity."

What is the best way to approach this issue so that I can have everything separated out, but still only have to import one line into my ApolloServer

src/index.ts

import { ApolloServer } from 'apollo-server'
import { context } from './graphql/context'
import {typeDefs} from "./graphql/Schema/index"
import {resolvers} from "./graphql/resolvers/index"


new ApolloServer({ resolvers, typeDefs, context: context }).listen(
    { port: 4000 },
    () =>
      console.log(`
  ???? Server ready at: http://localhost:4000`))

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文