Как устранить неполадки при использовании библиотеки HTTP-запроса node.js GOT? - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть некоторый код, использующий GOT, запрашивающий конечную точку graphQL:

// set up params for call to weather cache 
    const queryQL = `
      query weather {
        weather(where: {idLatLong: {_eq: "${latLong}"}}) {
          id
          idLatLong
          updated_at
          lat
          long
          requestedByUserId
          data
          created_at
        }
      }
    `
    const query = {query: queryQL};
    const options = {
      headers: {
        'X-Hasura-Admin-Secret': process.env.HASURA_KEY
      },
      responseType: 'json'
    }

    // see if there's an existing record for the lat long
    try {
      const response = await got.post(process.env.GQL_ENDPOINT, query, options);
      console.log('query weather hasura');
      console.log(response.body);
    } catch(error) {
      console.log(error);
    } 

Я получаю ответ от Hasura {"errors":[{"extensions":{"path":"$","code":"invalid-headers"},"message":"Missing Authorization header in JWT authentication mode"}]}

Как узнать, что GOT отправляет на Конечная точка GQL? К вашему сведению, этот вызов прекрасно работает в консоли GQL, а также в Postman.

1 Ответ

0 голосов
/ 09 апреля 2020

Библиотека got() имеет хуки, которые позволяют вам видеть заголовки, которые она собирается отправить. Вот пример, который вы можете запустить, а затем вставить то же самое в ваш код:

const got = require('got');

got("http://www.google.com", {
    hooks: {
        beforeRequest: [function(options) {
            console.log(options);
        }]
    }
}).then(result => {
    let i = 1;
}).catch(err => {
    console.log(err);
});

Вы также можете получить сетевой анализатор, такой как Wireshark , чтобы установить его на свой клиентский компьютер и наблюдать за ним. фактический сетевой трафик c.

...