Не удается отправить ответ Json при использовании Axios на сервере Node.js - PullRequest
1 голос
/ 11 июля 2019
const express = require("express")
const app = express()
const {json, urlencoded} =  require("body-parser")
const axios = require('axios')

app.use(urlencoded({ extended: false }))

//app.use(json())

app.get("/" , (req , res) => {
    axios.get('https://api.github.com/users/haitruonginfotech')
    .then(response => res.send({success : true , response}))
    .catch(error => res.send({success : false , message : error}))
})

app.listen("3001",() => console.log("Server started"))

Результат: enter image description here

1 Ответ

1 голос
/ 11 июля 2019

Небольшое изменение в коде должно заставить это работать, ошибка не в Axios, а в Express, пытающейся преобразовать всю (круговую) структуру ответа в Json.

Кроме того, я бы не отправлял обратно весь объект ошибки, поскольку он не сериализуется, лучше отправлять выбранные свойства, например, сообщение.

const express = require("express")
const app = express()
const axios = require('axios')

app.get("/" , (req , res) => {
    axios.get("https://api.github.com/users/janbodnar")
    .then(response => res.send({success : true , response: response.data}))
    .catch(error => res.send({success : false , message: error.message}))
})

app.listen("3001",() => console.log("Server started"))
...