我有一个名为用户的对象数组。
该数组中的对象格式如下:

var userExample = {pub:{name:'John', id:'100'}, priv:{location:'NYC', phone:'000000'}};


作为一项宁静的服务,客户端可以请求所有用户的信息。
很显然,我只想向他们发送公共信息。
所以我想通过键选择性地序列化我的数据(私钥将被忽略)

这是我的代码段:

var users = [];
function censor(key, value) {
  if (key == priv) {
    return undefined;
  }
  return value;
}

app.get('/listUsers', function(req, res){
  res.end(JSON.stringify(users, censor));
});


当我运行这些代码时,发生错误:


  ReferenceError:尚未定义priv


我是Java语言的初学者,请帮忙。

最佳答案

priv更改为"priv"

但是您的方法很危险。在类似的情况下,我通常创建一个要导出的新对象,并显式复制应导出的属性,这样就不会在将来的数据结构更改中泄漏任何风险。白名单永远比黑名单更适合未来。

09-25 21:59