Проблемы использования GitHub API в бэкэнде с Axios - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь использовать API github в моем приложении express, но оно не работает. Когда я использую свой возврат с res. json (console.log (users)), я получаю всех пользователей так, как хочу, но когда я использую return res. json (users); иногда я получал erro 500, и теперь эта ошибка:

Converting circular structure to JSON",
    "name": "TypeError"

Я не знаю почему, потому что это простое приложение .. вот мой топор ios config:

import axios from 'axios';

const api = axios.create({
  baseURL: 'https://api.github.com',
});

export default api;

Вот мой код с методами:

class UserController {
  async show(req, res) {
    const { username } = req.query;

    if (!username) {
      return res.status(400).json({ error: 'Invalid user' });
    }
    const user = await api.get(`/users/${username}`);

    return res.json(user);
  }

  async index(req, res) {
    const { page = 1 } = req.query;
    const users = await api.get(`users?since=${page}`);
    return res.json(users);
  }
}

export default new UserController();

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

axios возвращает объект ответа, подобный следующему:

data: {...}
status: 200
statusText: ""
headers: {..}
config: {...}
request: {...}

Так что в идеале, я думаю, вы хотите вернуть response.data. Так что попробуйте

const response = await api.get(`/users/${username}`);
res.json(response.data);
0 голосов
/ 20 февраля 2020

Вам нужно получить свойство data от ответа топора ios, нет?

const user = await api.get(`/users/${username}`);

return res.json(user.data);

Смотрите здесь: https://github.com/axios/axios#response -схема

Поле request представляет собой круговую структуру, поэтому отправка всего объекта ответа вызовет эту ошибку.

...