Express Axios拦截器使用快速请求对象

Express Axios拦截器使用快速请求对象,express,axios,interceptor,Express,Axios,Interceptor,我有一个快速路由,在该路由中,我从前端发送一个报头,在该路由中,我使用axios发出GET请求。我用axios创建了一个拦截器,但我希望能够从激活的路由读取req对象,以便将头添加到axios GET调用中 // Example Interceptor axios.interceptors.request.use( config => { // How to get req.headers from the route here? return config; },

我有一个快速路由,在该路由中,我从前端发送一个报头,在该路由中,我使用axios发出GET请求。我用axios创建了一个拦截器,但我希望能够从激活的路由读取req对象,以便将头添加到axios 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({});
});

有可能做到这一点吗?

因此,我认为实现这一点的方法是使用中间件来设置标头,并传递axios实例

// 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({});
});

希望这有帮助

我想在拦截器中访问/get路由的req对象,或者至少访问一些元素,如req.headers、req.params等,但其目的是读取它并记录它或其他内容,或者添加到其中?是的,我想在拦截器中读取它,这样我就可以在axios请求中自动添加头,而config.headers不包括您要查找的头?那么您想将头从一个请求添加到另一个请求?