1

我一直在努力使这个工作。我目前正在学习 Apollo Server 和 GraphQL。我去了不同的文档,但似乎找不到答案。这就是我想要做的。

我有usertypes.js,这是代码片段:

const { gql } = require('apollo-server');

const UserTypeDefs = gql`
  type User {
    _id: ID!,
    username: String!,
    password: String!,
  }
`;

module.exports = UserTypeDefs;

在我的logintypes.js上:

const { gql } = require('apollo-server');
const { UserTypeDefs } = require('./usertypes.js') 

const LoginTypeDefs = gql`
    type LoginResponse {
        user: UserTypeDefs.User //this is not working. :(
    }

    extend type Mutation {
        login(username: String!, password: String!): LoginResponse!
    }
`;


module.exports = LoginTypeDefs;

任何帮助表示赞赏。我不想尽可能在​​我的logintypes.js中再次声明我的类型 User 。

先感谢您。

4

1 回答 1

0

无需导入其他模块。只需按名称引用类型:

type LoginResponse {
  user: User
}

然后,当您创建ApolloServer实例时,将 typeDefs 作为数组传入:

const userTypeDefs = require(...)
const loginTypeDefs = require(...)

const apollo = new ApolloServer({
  typeDefs: [userTypeDefs, loginTypeDefs],
  ...
})
于 2020-02-03T15:39:03.293 回答