Ax ios перехватчик использует express req объект - PullRequest
0 голосов
/ 31 марта 2020

У меня есть маршрут express, в котором я отправляю заголовок из внешнего интерфейса, на этом маршруте я делаю GET-запрос, используя ax ios. Я создал перехватчик с помощью ax ios, но я хотел бы иметь возможность прочитать объект req из активированного маршрута, чтобы добавить заголовок к вызову ax ios GET.

// Example Interceptor
axios.interceptors.request.use(
  config => {
    // How to get req.headers from the route here?
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

// Exemple GET route
router.get('/get', async (req, res, next) => {
  try {
    const { data } = await axios.get('https://kjhf.fsadjhfewq.....');
  } catch (error) {
    console.log(error)
  }

  res.status(200).json({});
});

Возможно ли это сделать?

1 Ответ

1 голос
/ 31 марта 2020

Так что я думаю, что способ сделать это - использовать промежуточное ПО для установки заголовков и передать топор ios экземпляр

// apiSetHeader.js middleware
exports.default = (req, res, next) => {
  req.CustomAxios = axios.create({
    headers: { 'HeaderForTheApi': req.headers.apiHeader'}
  })
  next()
}

И затем использовать это в своем маршруте

// Exemple GET route
router.get('/get', apiSetHeaderMiddleware, async (req, res, next) => {
  try {
    const { data } = await req.CustomAxios.get('https://kjhf.fsadjhfewq.....');
  } catch (error) {
    console.log(error)
  }
  res.status(200).json({});
});

Надеюсь, это поможет!

...