nodejs处理多个请求

时间:2020-07-30 15:50:08

标签: javascript node.js reactjs express axios

我正在尝试使nodejs服务器呈现反应页面(SSR)。

我对nodejs处理多个请求的方式有些困惑。

我在另一个文件中创建了一个axios实例。

// axios.js
const intance = axios.create(// some config);

export default instance;

我有两个中间件。

  1. 将拦截器添加到axios实例中,从而将请求标头提供给axios实例。
  2. 获取数据并创建/提供HTML页面。

这是我的中间件。

const instance = require('./axios');

// middleware 1
app.use((req, res, next) => {
  instance.interceptors.request.handlers = [];
  instance.interceptors.request.use(config => {
    config.headers.cookie = req.headers.cookie;
    // ...
    return config;
  });
  next();
});

// middleware 2
app.use(async (req, res, next) => {
  const data = await instance.get('http://apiserver.com');
  
  // create React Page
  reteurn renderToNodeStream(<HTML data={data} />).pipe(res);
});

所以,这是我服务器的一个简单版本。

我的问题是,如果当A用户对服务器和中间件1的请求结束时,B用户对服务器的请求并启动中间件1,那么A用户的数据获取实例headers.cookie可能是B的headers.cookie呢?

  1. 用户结束中间件1
  2. B用户对服务器的请求
  3. B用户的中间件将B的标头设置为instance.interceptor
  4. 用户使用实例进行数据提取。实例的配置头是否与B的头相同?

0 个答案:

没有答案