如何在发送给客户端之前更改API响应?

问题描述 投票:0回答:1

我正在开发一个中间件,它向第三方URL发送请求并获取数据,然后我的中间件处理该数据,然后发送到客户端。

我想找到一种方法来更新API响应,然后发送给客户端解决问题。

E.x.

var obj = {
    uid:123,
    name:test
}

当我将res发送给客户端时,它应该是这样的

 var obj = {
    sid:123,
    username:test
}

我需要从服务器端进行这种类型的更改,而不是在所有AP中编写相同的代码。我需要全球化的方法来解决这个问题。

node.js restify
1个回答
0
投票

可以做的是创建一个从服务器端键名映射到客户端键名的JSON。

防爆。

const keyMap = {
    sid: sid
    name: username 
}

然后迭代您的对象并从中创建一个带有请求键的新对象。

 let obj2 = {};
 Object.keys(obj1).forEach(k => {
     obj2[keyMap[k] || k] = obj1[k];
 });

您仍然需要调用一个函数来转换每个API中的对象。或者,覆盖res.json方法以首先调用convert函数,然后调用原始的res.json方法。

© www.soinside.com 2019 - 2024. All rights reserved.