我正在使用 Node v8.11,无法从创建并从 mongoDB 返回新对象的对象中删除项目。
创建后的示例响应:
{
"name": "",
"device": "",
"session":"",
"_id": "5b7e78c3cc7bca3867bbd1c9",
"createdAt": "2018-08-23T09:05:07.134Z",
"updatedAt": "2018-08-23T09:05:07.134Z",
"__v": 0
}
尝试从响应中删除“_id”,如下所示:
tokens.create(req.body).then(function(session){
delete session._id;
return res.send(session); // _id still exist
});
我看到 delete 在 ES6 中被弃用了,这是大小写问题吗? 如何使用键在一行中删除一个项目?
最佳答案
当你使用 mongoose 模型创建一个对象时,它会返回一个模型对象而不是普通的 javascript 对象。所以,当你做 delete session._id;
它不会像 session
那样工作是一个模型对象,它不允许直接更改模型对象的属性。
您需要使用 toJSON()
将模型对象更改为纯 JS 对象或 toObject()
模型对象的方法和删除属性:
tokens.create(req.body).then(function(session) {
var sessionObj = session.toJSON();
delete sessionObj._id;
return res.send(sessionObj);
});
关于javascript - 如何使用 nodeJS 从 JSON 对象中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51982694/