Axios and Node - Проблемы с выводимыми данными в EBAY API - PullRequest
1 голос
/ 08 октября 2019

Я просто пытаюсь провести быстрый тест с использованием Axios для запуска GET-запроса из eBay API.

Вот мой код:

var express = require("express");
var router = express.Router();
const axios = require("axios");

var url = "http://svcs.ebay.com/services/search/FindingService/v1";
url += "?OPERATION-NAME=findItemsAdvanced";
url += "&SERVICE-VERSION=1.0.0";
url += "&SECURITY-APPNAME=XXXX";
url += "&GLOBAL-ID=EBAY-US";
url += "&RESPONSE-DATA-FORMAT=JSON";
url += "&categoryId=213"; // baseball
url += "&keywords=t206"; // change value to title
url += "&paginationInput.entriesPerPage=6";

console.log(url);

axios({
  method: "get",
  url: url
})
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.log(error);
  });

module.exports = router;

URL-адрес строки работает при вводе в браузере. Однако, когда я запускаю узел, я получаю следующее:

{
  findItemsAdvancedResponse: [
    {
      ack: [Array],
      version: [Array],
      timestamp: [Array],
      searchResult: [Array],
      paginationOutput: [Array],
      itemSearchURL: [Array]
    }
  ]
}

Я пытался изменить журнал консоли ответа на этот

console.log(response.data.searchResult) и

this

console.log(response.data.findItemsAdvancedResponse.searchResult)

но я продолжаю получать неопределенность.

Есть идеи?

1 Ответ

2 голосов
/ 08 октября 2019

Это потому что findItemsAdvancedResponse это Array. Итак, сделайте что-то вроде этого

console.log(response.data.findItemsAdvancedResponse[0].searchResult)

Также учтите, что searchResult также является массивом. так что вы должны зациклить его, чтобы получить все Results

...