Не пойманный (в обещании) Ошибка ссылки: axios не определен

#javascript #html #node.js #api #axios

Вопрос:

Когда я пытаюсь загрузить свою html-страницу, я получаю эту ошибку:

Не пойманный (в обещании) Ошибка ссылки: axios не определен в get (index.js:7)

Когда я импортирую его import axios from 'axios'; по мере получения:

Неперехваченная ошибка синтаксиса: Невозможно использовать оператор импорта вне модуля

Так что в любом случае это работает неправильно. Я тоже использовал npm install axios и упомянул источник в html-файле:

 lt;script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.23.0/axios.js"gt;lt;/scriptgt;  

или

 lt;script src="https://unpkg.com/axios/dist/axios.min.js"gt;lt;/scriptgt;  

Я просто не замечаю, что я мог сделать не так. Вот пример сценария, как он выглядит следующим образом:

 const apiUrl = 'http://localhost:8000/api/';    async function get(url) {  return (await axios(url)).data;  }    async function loadTable() {  let data = await get(apiUrl   'getList');  let tableDiv = document.getElementById('tableData');  // and so on  

У меня нормально работает api, единственная проблема-это ссылка на axio. Сценарий узла работает нормально в другом файле .js, также Почтальон может идентифицировать его без проблем. Тот же порт, тот же URL.

Комментарии:

1. Вы импортировали Axios внутри модуля?

Ответ №1:

Если это HTML-страница, подобная той, которую вы открыли бы в своем браузере, npm вы не сможете добавить Axios на страницу за вас. Вы можете рассмотреть Node.js код на стороне сервера и ваш браузер на стороне клиента (обратите внимание, что это не всегда так, но здесь это так).

Также обратите внимание, import предназначен для Node.js код, и не будет работать в HTML-коде без дополнительного фреймворка, который, я полагаю, вы здесь не используете.

Ваши script теги указаны правильно, но, вероятно, они не были добавлены в ваш HTML-файл в нужный момент. Вы можете использовать любую из этих конфигураций, и она должна работать:

Скрипт импортируется до создания элементов страницы:

 lt;headgt;  ...  lt;script src="https://unpkg.com/axios/dist/axios.min.js"gt;lt;/scriptgt;  ... lt;/headgt; lt;bodygt;  ...  lt;script src="yourCustomCode"gt;lt;/scriptgt; lt;bodygt;  

Скрипт импортируется после создания элементов страницы:

 lt;headgt;  ... lt;/headgt; lt;bodygt;  ...  lt;script src="https://unpkg.com/axios/dist/axios.min.js"gt;lt;/scriptgt;  lt;script src="yourCustomCode"gt;lt;/scriptgt; lt;bodygt;  

В любом случае, просто убедитесь, что пакет Axios выше, чем код, который вы хотите запустить с Axios.

Комментарии:

1. да, и у меня есть узел в другом script.js как я уже упоминал, api работает нормально, Почтальон может идентифицировать его без проблем. тот же порт, та же ссылка.

2. Боже правый, я не ставил пакет Axios выше кода. Большое спасибо! Я боролся последние 2 часа.

3. @thhhhhhhh Рад, что ты это понял. Определенно был там до меня!