GraphQL Mutation 如何将自身与 Type 关联起来
How does GraphQL Mutation associate itself with Type
当我按如下方式设置架构时:
type Mutation {
createUser(data: CreateUserInput!): User!
}
type User {
id: ID!
name: String!
password: String!
email: String!
posts: [Post!]!
comments: [Comment!]!
}
和我的解析器:
const Mutation = {
async createUser(parent, args, { prisma }, info) {
if(args.data.password.length < 8) {
throw new Error("Pasword must be 8 characters or longer")
}
return prisma.mutation.createUser({
data: {
...args.data,
password
}
})
}
}
GraphQL 如何知道 createUser
与我的 User
模型相关联?我可以将其设置为 createUser
returns 令牌而不是用户(在生成令牌后),或者我可以将 createUser
重命名为 createPerson
。我从来没有定义createUser
和User
之间的关联。我不确定我通过 createUser
输入的数据如何被定向保存在 user
table,而不是另一个 table。
两者之间没有关联。
您的解析器可以很容易地return一个带有一些虚拟数据的普通对象:
async createUser(parent, args, { prisma }, info) {
...
return {
id: 1,
name: 'Kevvv',
password: 'password',
email: 'kevvv@whosebug.com',
}
}
或使用其他方式获取用户:
async createUser(parent, args, { prisma }, info) {
...
return fetchUserFromAPI()
// or some other data source like a DB
}
prisma.mutation.createUser
return 是一个 Promise,它解析为代表创建的用户的对象。该对象恰好具有与您在模式中指定的 User
类型相匹配的属性,但除此之外没有任何 "special" 关于它。
当我按如下方式设置架构时:
type Mutation {
createUser(data: CreateUserInput!): User!
}
type User {
id: ID!
name: String!
password: String!
email: String!
posts: [Post!]!
comments: [Comment!]!
}
和我的解析器:
const Mutation = {
async createUser(parent, args, { prisma }, info) {
if(args.data.password.length < 8) {
throw new Error("Pasword must be 8 characters or longer")
}
return prisma.mutation.createUser({
data: {
...args.data,
password
}
})
}
}
GraphQL 如何知道 createUser
与我的 User
模型相关联?我可以将其设置为 createUser
returns 令牌而不是用户(在生成令牌后),或者我可以将 createUser
重命名为 createPerson
。我从来没有定义createUser
和User
之间的关联。我不确定我通过 createUser
输入的数据如何被定向保存在 user
table,而不是另一个 table。
两者之间没有关联。
您的解析器可以很容易地return一个带有一些虚拟数据的普通对象:
async createUser(parent, args, { prisma }, info) {
...
return {
id: 1,
name: 'Kevvv',
password: 'password',
email: 'kevvv@whosebug.com',
}
}
或使用其他方式获取用户:
async createUser(parent, args, { prisma }, info) {
...
return fetchUserFromAPI()
// or some other data source like a DB
}
prisma.mutation.createUser
return 是一个 Promise,它解析为代表创建的用户的对象。该对象恰好具有与您在模式中指定的 User
类型相匹配的属性,但除此之外没有任何 "special" 关于它。