Переменные Graphiql не передаются на сервер

Я создаю сервер Apollo. У меня есть одна простая конечная точка, которая общается с Mongo. Есть коллекция объявлений.

export const typeDefs = gql`
  type Query {
    announcements: [Announcement]
    announcementsByAuthor(author: String!): [Announcement]
  }

  type Announcement {
    _id: ID!
    msg: String!
    author: String!
    title: String
  }
`;

export const resolvers = {
  Query: {
    announcements: () => {
      return new AnnouncementController().getAnnouncements();
    },
    announcementsByAuthor: (author: string) => {
      console.log('RESOLVER: ', author);
      return new AnnouncementController().getAnnouncementsByAuthor(author);
    }
  },
}

В моем графическом интерфейсе запрос объявлений работает корректно:

{
  announcements {
    msg
    author
    }
}

Похоже, что запрос adsByAuthor не принимает строковый аргумент ни из переменной, ни при жестком кодировании в запросе.

query($author: String!){
  announcementsByAuthor(author: $author) {
    msg
    author
  }
}

Переменные:

{
  "author":"Nate"
}

Я вышел из распознавателя, и вместо указанного значения для авторской переменной передается пустая строка. Я новичок в graphql, и я надеюсь, что кто-то может просветить меня относительно того, что, я уверен, является простой оплошностью.


person natep    schedule 12.07.2018    source источник
comment
Допустимо ли предоставлять аргументы без имени запроса?   -  person brysgo    schedule 12.07.2018
comment
Угадайте так: launchpad.graphql.com/w5v1rqj1nz   -  person brysgo    schedule 12.07.2018
comment
Я вижу проблему. Аргументы входят во второй аргумент преобразователя.   -  person brysgo    schedule 12.07.2018


Ответы (1)


Попробуйте это вместо этого:

announcementsByAuthor: (doc, {author}) => {

person brysgo    schedule 12.07.2018
comment
Я сожалею, что у меня есть только один голос, чтобы дать. Спасибо. - person natep; 12.07.2018