javascript-如何从JSON对象中删除__proto__属性?

我具有基于Node-Express的以下功能:

//function on server side
app.get('/loginCheck', loggedCheck, function(req, res) {
    var data = {local: {}, facebook: {}};
    data.id = req.user._id;
    data.local.email = req.user.local.email;
    data.local.fname = req.user.local.fname;
    data.local.lname = req.user.local.lname ;
    data.local.college = req.user.local.college ;
    data.local.degree = req.user.local.degree ;
    data.year = req.user.year ;
    data.mobile = req.user.mobile ;
    data.city = req.user.city ;
    data.facebook.id = req.user.facebook.id ;
    //res.json(data);        

    var x = {};
    x.name = "someName"

    res.json(x);
})

以下是发出ajax请求的客户端代码:

//function on client side making an ajax request
$.get("/loginCheck",function(data,status){
    console.log(data);
});

在服务器端的先前代码中,req.user是由mongoose创建的mongodb对象.我想做的是发送数据对象(具有req.user对象的某些选定属性),然后将该对象作为JSON发送作为响应.

变量x是自定义创建的变量.

问题是:
当我将数据对象发送给客户端时,__ proto__属性也被添加了该对象,当我向客户端发送x时却没有发生.
但是,我不希望客户端使用__proto__,因为从某些文章中我发现__proto__存在安全问题.

我需要有关如何从数据对象中删除__proto__的帮助.

解决方法:

您不需要删除它.它不会造成任何麻烦/问题.

您可以这样使用.

$.each(data, function(k, v) {
    console.log(k, v);
});
上一篇:javascript-Expressjs / Node.js-res.redirect()无法加载页面


下一篇:java-通过Mongoose(Node JS)在Mongo DB中插入不带JSON模式的JSON对象