【发布时间】:2019-04-26 19:55:36
【问题描述】:
兄弟姐妹们,我正在构建一个 Express API Endpoint,它需要使用外部 API,对键和值进行一些更改,并将结果返回给客户端。到目前为止,这是我所拥有的:
const external_endpoint = <external_api_end_point>;
app.get('/', function (req, res, next) {
request({ url: external_endpoint}).pipe(res);
});
这将返回您直接点击external_endpoint 所获得的确切有效负载。
在res 发送给客户之前,我不能做些什么来更改它吗?我尝试了一些东西,但没有任何效果。与对传入有效负载进行转换相关的任何想法或最佳实践?
为了简单起见。假设这是有效载荷obj.json:
{
"sad": {
"userid": 5,
"username": "jsmith",
"isAdmin": true
}
}
我想将sad 更改为happy。
我知道在请求之外我可以做这样的事情:
obj = JSON.parse(JSON.stringify(obj).split('"sad":').join('"happy":'));
但是用obj 代替res 是行不通的。我已经尝试分配这个res 和res.body 的值,但没有骰子。
提前感谢您的帮助!
【问题讨论】:
-
你能解释一下
request是什么吗?这可能有多个库。 -
正确。很抱歉没有澄清这一点。我正在使用
request ^2.88.0。这是 github 存储库的链接github.com/request/request -
知道了。是的,基本的
request模块处理流式传输以表达响应作为一等公民。所以你可以使用我在答案中概述的event-stream方法。
标签: node.js json api express requestjs