Мои операции 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