有没有办法可以在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
但我更愿意为了简单起见。
答案 0 :(得分:0)
我使用request
包来执行我的HTTP请求,然后在编写时执行response.pipe(res);
。
工作得很好