如何在Express中将一个响应传递给另一个响应

时间:2018-05-10 03:44:30

标签: node.js rest express

有没有办法可以在Express路由处理程序中调度一个REST请求,然后截取响应以应用自定义逻辑或管道通过res

我想我可以将REST响应的所有不同部分复制到res(即标题,状态代码,正文等),但我再也不知道所有部分我需要复制才能完全克隆响应。某种自动机制更可取。

import { Client } from 'node-rest-client-promise';

app.get('/', async (req, res, next) => {
  const client = new Client();
  const { response } = await this.client.getPromise(url);

  switch (response.statusCode) {
    case 404:
      // Intercept and replace code and body.
      res.status(200).send('Other results');
      return;
    default:
      // Otherwise pipe REST response to res.
      response.pipe(res);
      return;
  }
});

此代码段最终只返回一个200代码,除了404之外,还有一个空主体用于任何类型的REST响应。

  

注意:我没有必要使用node-rest-client-promise但我更愿意为了简单起见。

1 个答案:

答案 0 :(得分:0)

我使用request包来执行我的HTTP请求,然后在编写时执行response.pipe(res);。 工作得很好