Я использую NodeJS для создания приложения для электронной коммерции. Однако ошибка axios не определена, возникает ошибка

#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. Когда вы хотите проверить маршруты, которые вы определили на своем бэкэнде, как бы вы еще поступили?