Использование fetch и ES6 для загрузки локальных файлов JSON - PullRequest
0 голосов
/ 17 июня 2019

Введение

У меня есть локальный файл 'countryballs.json', который я хочу загрузить в html и проанализировать данные в index.html.

Способ, которым я хочу это сделать, и единственный, который я знаю, это использовать Fetch () .Довольно прост в использовании.

Код

async function getData()
        {
            await fetch('./countryballs.json')
            .then((response) => {
                return response.json();
            })
            .then((data) => {
                console.log(data);
            })
            .catch(function (error) {
                console.log(error);
            })
        }
        getData();

Объяснение кода

Выборка должна использоваться в асинхронной функции какон возвращает обещание (загрузка файлов занимает время)

await fetch () // Будет ждать, пока все не будет загружено.Остальная часть кода не требует пояснений ES6 JS-кодирования.

Проблема

При работе с внешними API (для погоды, финансов и прочего) он просто отлично работает,Я могу получить и проанализировать данные, и все идет хорошо.Даже загрузка локальных файлов CVS. Но не с моим локальным файлом JSON.

ОШИБКА

index.html:15 GET http://localhost:8080/countryballs.json 404 (Not Found)

XMLHttprequest log:

index.html:15 Fetch failed loading: GET "http://localhost:8080/countryballs.json".

Вопросы

  • Почему он не работает и с файлами JSON?
  • Чего мне не хватает в коде?

Пример .json

[
  {
    "country": [
      {
        "name": "Spain",
        "GDP": " $1234",
        "Regions": " Europe ",
        "Align": " Western "
      }
    ]
  }
]

Люди с похожими проблемами, но с разными решениями или у меня это не сработало

Дополнительные пояснения для понимания проблемы

  • Папка, в которой я работаю, выглядит следующим образом:

    • узловые модули

    • index.html

    • countryballs.json

  • Я использую Node.js и код Visual Studio

  • index.html выполняется на локальном хосте: 8080 с использованием браузера Chrome

Возможные решенияна этом я рассмотрел

  • Использование файловой системы для загрузки (но все еще хочу попробовать fetch ())

Галерея изображений проблемы

(вывод на консоль Chrome)

Hope you help me find a solution

Изменить:

Как некоторые из вас просили, я предоставлю то, что у меня есть, здесь и ниже инструкции по тестированию.

Файл GoogleDrive

1. Get node.js
2. cd into the folder with the index.html and the rest
3. call for `node http-server`
4. get into the browser and connect to localhost:8080 
...