首页 > 解决方案 > 在 Axios 的后端使用 GitHub api 的问题

问题描述

我正在尝试在我的 express 应用程序中使用 github 的 api,但它不起作用。当我将 return 与 res.json(console.log(users)) 一起使用时,我会根据需要接收所有用户,但是当我使用 return res.json(users); 有时我收到错误 500,现在出现此错误:

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

我不知道为什么,因为这是一个简单的应用程序.. 这是我的 axios 配置:

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();

标签: node.jsexpressaxios

解决方案


您需要data从 axios 响应中获取属性,不是吗?

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

return res.json(user.data);

见这里:https ://github.com/axios/axios#response-schema

request字段是一个循环结构,因此发送整个响应对象将导致该错误。


推荐阅读