NodeJS Ax ios ответ не определен в API console.log - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь заставить этот код работать.

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.

Ответы [ 3 ]

2 голосов
/ 29 января 2020

топор ios обещание возврата

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))
0 голосов
/ 29 января 2020

Топор ios Возвращает обещание. Вы можете посмотреть документацию здесь

. Вы можете использовать await, чтобы дождаться ответа, в этом случае вам следует использовать блок try catch, чтобы убедиться, что вы позаботились об ошибках вашего Конечная точка разногласия. Это хорошее чтение по обработке ошибок для asnyc / wait ( здесь ) Как @arshpreet предложил

(async ()=>{
try{

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

Или вы можете сделать это тогда и поймать, чтобы позаботиться об ошибках. так же, как упомянул Валид.

0 голосов
/ 29 января 2020

Вы можете связать метод then, поскольку ax ios возвращает обещание. Вы также можете связать метод 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);
});

надеюсь, это поможет. УДАЧИ :))

...