【发布时间】:2020-06-13 23:04:13
【问题描述】:
我正在尝试为 Apollo Server 设置架构,但遇到了错误。我不太确定如何提出这个问题,所以我会发布必要的文本/代码。
"message": "不能为不可为空的字段 User.id 返回 null。"
我的解析器/index.js 如下所示:
import * as Mutation from "./Mutation";
import * as Query from "./Query";
import User from "./User";
const resolvers = { Mutation, Query, User };
console.log(resolvers);
export default resolvers;
产生以下输出:
{
Mutation: {
createListing: [Getter],
updateListing: [Getter],
deleteListing: [Getter],
createUser: [Getter]
},
Query: { listings: [Getter], listing: [Getter], userLogin: [Getter] },
User: [AsyncFunction: user]
}
我的 typeDefs 文件是这样的
import { gql } from "apollo-server";
const typeDefs = gql`
type Listing {
description: String!
id: ID!
title: String!
createdBy: User!
}
type User {
id: ID!
email: String!
}
type AuthData {
id: ID!
token: String!
expiresIn: String!
}
input UserInput {
email: String!
password: String!
}
input ListingInput {
id: ID
title: String!
description: String!
}
type Mutation {
createUser(userInput: UserInput): User!
createListing(listingInput: ListingInput): Listing!
updateListing(listingInput: ListingInput): Listing!
deleteListing(id: ID!): Boolean!
}
type Query {
listings: [Listing!]!
listing(id: ID!): Listing!
userLogin(userInput: UserInput): AuthData!
}
`;
export default typeDefs;
问题是我不知道如何获取列表类型的用户数据
createdBy 实际上是 ID!字段,我希望 graphQL 为我获取用户数据。以下是我一直在尝试使用的查询。
query {
listing(id: 35)
{
id
title
createdBy {
id
email
}
}
}
Graphql 初学者在这里。我是否使用了正确的方法? 如果需要,我还可以提供 git repo。如何重新组织它以使其正常工作?
【问题讨论】:
-
listing(id)解析器?不返回createdBy的用户类型 - 可能仅从数据库列表记录中返回用户id.. 使用加入
标签: node.js graphql apollo-server