Начал возиться с GraphQL, но я застрял с этой ошибкой. Не уверен, что это проблема в определении схемы или в запросе.
const express_graphql = require('express-graphql')
const { buildSchema } = require('graphql')
const users = require('../users/translator')
const schema = buildSchema(`
type User {
id: ID
email: String
role: String
}
type Query {
user(id: ID!): User
users: [User]
token(email: String!, password: String!): String!
}
type Mutation {
signup(email: String!, password: String!, role: String!): ID
}`
)
const resolvers = {
users: users.getAll,
user: users.getById,
token: users.login,
signup: users.create,
}
module.exports = app => {
// GraphQL route
app.use('/graphql', express_graphql({
schema,
rootValue: resolvers,
graphiql: true,
}))
}
app
является сервером express. js, а const users
содержит логи c. Я могу выбрать пользователей и токены, но когда я пытаюсь POST мутации
{
signup(email: "my@email.com", password: "321321", role: "admin")
}
, я получаю ошибку Cannot query field "signup" on type "Query"
. Глядя на предложения GraphiQL после чтения схемы с сервера, похоже, что мутация регистрации даже не экспортируется:
Некоторые учебные пособия скажем, я должен экспортировать распознаватели, используя
const resolvers = {
query: {
users: users.getAll,
user: users.getById,
token: users.login,
},
mutation: {
signup: users.create,
}
}
Но это тоже не работает. Есть намеки?