我有一个名为用户的对象数组。
该数组中的对象格式如下:
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"
。
但是您的方法很危险。在类似的情况下,我通常创建一个要导出的新对象,并显式复制应导出的属性,这样就不会在将来的数据结构更改中泄漏任何风险。白名单永远比黑名单更适合未来。