console.log API 上未定义的 NodeJS Axios 响应

NodeJS Axios response undefined on console.log API

我试着让这个代码工作。

const axios = require('axios');
let bodyapi = axios.get('there's my api')
console.log(bodyapi.data) <- undefined
let body = bodyapi.data
console.log(body.discord) <- couldn't get parameter ''discord'' of undefined

API 的响应类型:

"discord":{"Category":"activation","Qty":1542,"Price":1}
"vkontakte":{"Category":"activation","Qty":133,"Price":21}

我明白了''undefined''。 运行 在 NodeJS 上。

值得return提供

const axios = require('axios');

// use async await 
(async ()=>{
let bodyapi = await axios.get('there's my api')
console.log(bodyapi.data) // response
})()

// other way
axios.get('there's my api').then(data=> console.log(data))

您可以将 then 方法链接为 axios returns promise。 您还可以链接一个 catch 方法来捕获潜在的错误。

const axios = require('axios');
axios.get('there's my api').then(bodyapi => {
console.log(bodyapi.data) 
let body = bodyapi.data
console.log(body.discord)
}).catch(error => {
console.log(error);
});

希望这对您有所帮助。祝你好运:)

A​​xios Returns 一个承诺。可以看看文档here

您可以使用 await 来等待响应,在这种情况下,您应该使用 try catch 块来确保处理来自 discord 端点的错误。这是关于 asnyc/wait (here) 错误处理的好读物 就像@arshpreet 建议的那样

(async ()=>{
try{

  let bodyapi = await axios.get('there's my api')
   console.log(bodyapi.data) // response
  } catch(error){
     console.error(error)
  }
})()

或者您可以然后执行此操作并捕获以处理错误。 就像瓦利德提到的那样。