Axios - Express Request的不同标头

时间:2017-11-01 00:40:06

标签: javascript reactjs express axios

我开始开发SSR React-Redux应用程序,我遇到了axios标题的问题。

为每个Express请求设置不同标头的正确方法是什么?

Express.get('*', async (req, res) => {

  axios.defaults.headers.common = req.headers['my-customer-id'];

  // first axios get request
  // second axios get request
  // thirth axios get request

  //... initialization React App

});

使用此方法,axios默认标头将从上一次Express请求中被覆盖。

我尝试使用axios.create()创建不同的axios实例,但我不知道保存实例的位置和方式,以便在应用程序模块中使用。

2 个答案:

答案 0 :(得分:0)

您可以使用create创建新的自定义axios实例。

   const customAxios = axios.create({
      headers: {...req.headers['my-customer-id']}
    });

现在使用customAxios发出请求

customAxios.get(...)

答案 1 :(得分:0)

全局头和仅实例头之间有区别:

// affects the global instance 
axios.defaults.headers.common['Auth-Token'] = 'foo bar'; 
//  affects to a single instance
axiosInstance.defaults.headers['Auth-Token'] = 'foo bar'; 

这也适用于expressjs应用程序中的我,具有不同的服务(例如axios实例)