Функции работают, но консоль выдает постороннюю ошибку: «Переменная« $ id »необходимого типа« ID! »Не была предоставлена». - PullRequest
0 голосов
/ 02 февраля 2019

Мои операции CRUD работают.Но многие из них также генерируют одну конкретную ошибку консоли, которую я не смог отследить.

[GraphQL error]: Message: Variable "$id" of required type "ID!" was not provided., Location: [object Object], Path: undefined

Пример: я могу просматривать список пользователей без генерации ошибки, и я могу получить доступ к представлению «подробности» отдельного пользователя без генерации ошибки.Эти два прекрасно работают в изоляции .Но, так или иначе, переход от первого к последнему порождает ошибку.

Я протестировал оба запроса (пользователей и пользователей) в GraphQL-Playground и не получил ошибок.Я также попробовал идентификаторы типа «String», а не «ID!».(Также без!).Я экспериментировал с другими "хакерскими" способами подачи идентификатора пользователя в распознаватель.И я попытался передать другие поля вместо аргумента «информация» в обработчике запросов.

Повторяю, просмотр любой страницы по отдельности (т. Е. Очистка консоли и перезагрузка любой страницы) НЕ вызывает ошибку.Кажется, что-то в путешествии от /users до user?id=12345.

из datamodel.prisma:

type User {
id: ID! @unique
createdAt: DateTime!
updatedAt: DateTime!
name: String!
email: String! @unique
password: String!
resetToken: String
resetTokenExpiry: Float
permissions: Permission
posts: [Post]! @relation(name: "PostsOfUser" onDelete: CASCADE)
comments: [Comment!]! @relation(name: "CommentsOfUser" onDelete: 
CASCADE)

из объекта запроса в schema.graphql: user(id: ID!): User

распознаватель пользовательских запросов:

async user(parent, { id }, { db, request }, info) {
    const user = await db.query.user({ where: { id } }, info);
    return user;

gql-запрос с использованием пакетовact-apollo и graphql-tag:

const SINGLE_USER_QUERY = gql`
query SINGLE_USER_QUERY($id: ID!){
    user(id: $id) {
        id
        name
        email
        permissions
        createdAt
        updatedAt

    }
}
`;

Ожидаемое поведение: Пользователь может щелкнуть по одному пользователю из списка пользователей, и следующая страница будет содержать сведенияоб этом пользователе.

Фактические результаты: Работает, но также выдает консольные ошибки:

[GraphQL error]: Message: Variable "$id" of required type "ID!" was 
not provided., Location: [object Object], Path: undefined
index.js:86 

[Network error]: ServerError: Response not successful: Received status code 400
index.js:2178 GraphQL error occurred [getDataFromTree] Error: 
Network error: Response not successful: Received status code 400
at new ApolloError (ApolloError.js:37)
at QueryManager.js:328
at QueryManager.js:700
at Array.forEach (<anonymous>)
at QueryManager.js:699
at Map.forEach (<anonymous>)
at QueryManager.push../node_modules/apollo-client/core/QueryManager.js.QueryManager.broadcastQueries (QueryManager.js:694)
at QueryManager.js:277
...