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

时间:2018-01-01 08:03:04

标签: node.js restify

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

我想找到一种更新API响应然后发送给客户端的方法。

E.x。

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

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

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

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

1 个答案:

答案 0 :(得分: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方法。