在发回响应之前从数据库中解密数据 Node.js

Decrypting Data From Database Before Sending Response Back Node.js

更新

我遇到的实际问题是在 decrypt 之后将值放回响应中。我只需要知道如何在操作后将值放回 response 中。

背景

在我的 angular2 应用程序的 node 端,我正准备从对 postgres 数据库的 api 调用中发送 response。我需要 decrypt response 中的值之一。在文档中,它显示要像这样处理 response

              if (err) {
                    console.error(err);
                    res.status(500).send();
                    return done(); // always close connection
                } else {
                    if (result.rowCount > 0) {
                        decrypt(result.rows[0].myvalue);
                        let user = result.rows[0];
                        res.send(user);
                        return done(); // always close connection
                    }

问题

我无法弄清楚如何在发送回响应之前操纵响应中的值之一。在这种情况下 decrypt(user.myvalue); 或在将其放入 user decrypt(result.rows[0].myValue);

之前对其进行解密

例子

如果您 console.log(user.myvalue); 则显示加密的 myvalue。我需要在 myvalue 出现在 response 之前解密它。我可以这样decrypt

解密(result.rows[0].ssn);

问题

我如何 decrypt 使用 decrypt(result.myvalue); 以便它在用户 object 中被发送回 response decrypted

老实说,我对这种外观的效果感到困惑。

if (result.rowCount > 0) { // if greater than 0? Should it not always be greater than 0:
let user = result.rows[0];

响应返回正常。我可以在 node 端毫无问题地访问数据。我只是不明白它在存储它时是如何循环的。因为 result.rows[0]; 在我看来只是一个位置?我想它只是将整个响应存储在那个位置 [0];??

所以这输出 myvalue

console.log(result.rows[0].myValue);

所以我只需要decrypt那个值然后放回去。

你可以试试这个:

result.rows[0].myvalue = decrypt(result.rows[0].myvalue);

它将 decrypt() myvalue 。