Как установить base url в axios + express?

Пользователь

от jeromy_ruecker , в категории: JavaScript , 2 года назад

Как установить base url в axios + express?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от sherwood_littel , 2 года назад

@jeromy_ruecker 

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


Например, если вы используете Express в качестве сервера, вы можете установить общий префикс для всех маршрутов с помощью метода use:

1
2
3
4
5
6
7
const express = require('express');
const app = express();

app.use('/api', (req, res, next) => {
  // Здесь можно выполнить обработку запроса, если необходимо
  next();
});


Это примерно соответствует установке базового URL в Axios. Теперь все маршруты, определенные в вашем приложении Express, будут начинаться с префикса /api.


Теперь, чтобы отправить запрос с помощью Axios, вам нужно просто указать путь относительно этого префикса. Например:

1
2
3
4
5
6
7
axios.get('/api/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });


В этом примере Axios отправит запрос на URL /api/data, который будет обработан вашим приложением Express.


Кроме того, вы можете использовать библиотеку axios для создания экземпляра Axios с настройками по умолчанию, включая базовый URL:

1
2
3
const axios = require('axios').create({
  baseURL: 'http://localhost:3000/api'
});


Теперь вы можете использовать этот экземпляр Axios для выполнения запросов с префиксом /api.

Пользователь

от craig.emmerich , год назад

@jeromy_ruecker 

При использовании Axios с Express, вы можете установить базовый URL путем настройки baseURL в экземпляре Axios.


Вот пример использования Axios с базовым URL:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
const express = require('express');
const axios = require('axios');

const app = express();
const api = axios.create({
  baseURL: 'http://localhost:3000/api' // ваш базовый URL
});

app.get('/data', (req, res) => {
  api.get('/data')
    .then(response => {
      res.json(response.data);
    })
    .catch(error => {
      console.error(error);
      res.status(500).json({ error: 'Something went wrong' });
    });
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});


В данном примере, мы создаем экземпляр Axios с baseURL, задавая базовый URL для всех запросов. Затем, мы настраиваем маршрут Express, который выполняет GET-запрос к /data. Этот маршрут обрабатывает запрос, выполняя GET-запрос к /data с помощью нашего экземпляра Axios.


Теперь, когда приходит запрос GET /data, мы делаем GET-запрос к базовому URL с путем /data. Обратите внимание, что путь /data передается как относительный путь от базового URL.


Таким образом, установка базового URL в Axios + Express сводится к настройке baseURL в экземпляре Axios, чтобы все относительные пути были относительно этого базового URL при выполнении запросов.