#javascript #node.js
Вопрос:
Я использую axios для приложения электронной коммерции. когда я запускаю приложение, я вижу ошибку ниже в консоли.
Не пойманный (в обещании) Ошибка ссылки: axios не определен в GetProducts (main.js:5) в main.js:8
Я попытался импортировать axios в верхней части файла. Я попытался установить axios.
но все равно не работаю вот мой main.js код
const axios = require('axios');
async function getProducts() {
const response = await axios.get('http://localhost:5000/products');
console.log(response.data);
}
getProducts();
Комментарии:
1. вы установили axios
npm install axios
илиyarn add axios
?2. Спасибо, что перезвонил мне. Я установил с помощью npm install axios.
3. Вы уверены, что сохранили файл и выполняете правильный файл?
ReferenceError: axios is not defined at
Ошибка не будет соответствовать показанному коду. Ошибка будет возникать, когдаconst axios;
ее нет. Но не имеет отношения к томуaxios
, установлен он или нет.4. Иногда
node_modules
package-lock.json
может сработать удаление и переустановкаnpm i
.5. Я думаю, что вы не показываете нам РЕАЛЬНЫЙ код, потому что ошибка ссылки будет вызвана, когда
axios
она не определена, но вы показываете ее определенной, так что в реальном коде определенно есть что-то большее, что нам нужно увидеть.
Ответ №1:
Пожалуйста, попробуйте формат ниже:
const axios = require('axios');
const sendGetRequest = async () => {
try {
const resp = await axios.get('https://jsonplaceholder.typicode.com/posts');
console.log(resp.data);
} catch (err) {
// Handle Error Here
console.error(err);
}
};
sendGetRequest();
Комментарии:
1.
ReferenceError
связано не с тем, устанавливается что-то или нет, а с тем, объявлена переменная или нет.
Ответ №2:
Вам не нужны axios на вашем бэкэнде, вы можете получать данные напрямую с помощью определенного вами API. Используйте axios на своем интерфейсе с этим API, это должно сработать.
Попробуйте следующее, приложение.получите(‘http://localhost:5000/products’)
Если вы используете маршрутизатор от express, вы можете попробовать router.get(‘http://localhost:5000/products’)
Комментарии:
1.
app.get('http://localhost:5000/products')
не предназначен для выполнения http-запросов к другим серверам.2. не другие серверы, поскольку он упомянул, что использует nodejs, маршруты будут определяться им самим. Таким образом, вы можете использовать app.get (), если вы используете express и извлекаете данные. Вы можете проверить это в postman или непосредственно в браузере
3. Код операции
await axios.get('http://localhost:5000/products');
пытается выполнить http — запрос. Кромеapp.get('http://localhost:5000/products')
того, в любом случае даже не существует правильного способа определения маршрута для экспресс-сервера.4. Я говорю с точки зрения бэкенда, с точки зрения интерфейса вы можете использовать axios. Когда вы хотите проверить маршруты, которые вы определили на своем бэкэнде, как бы вы еще поступили?