javascript - 如何使用 nodeJS 从 JSON 对象中删除项目?

标签 javascript node.js mongodb express

我正在使用 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/

相关文章:

javascript - 如何从堆栈溢出中获取新问题的通知?

javascript - 存储图像的最佳选择是字节还是文件?

javascript - 如果绑定(bind)在 KnockoutJS 中不起作用,则为无容器

mongodb - 创建基于用户偏好的通知系统

mongodb - 将对象数组转换为 Mongoose 查询?

javascript - 使用 jQuery Mobile,onload 函数不会在 HTML 中触发

javascript - 如何格式化日期选择器

javascript - 测试同一函数的并发调用

mongodb - 如何在 MongoDB 中通过将数组元素与 MapReduce 匹配来对文档进行分组?

javascript - AmCharts map 禁用鼠标悬停时的翻转颜色