How to delete an Item from JSON Object using nodeJS?

孤人 提交于 2019-12-10 17:16:42

问题


I am using node v8.11, not able to delete an item from the object which creates and returns new object from the mongoDB.

Sample response after creating:

{
    "name": "",
    "device": "",
    "session":"",
    "_id": "5b7e78c3cc7bca3867bbd1c9",
    "createdAt": "2018-08-23T09:05:07.134Z",
    "updatedAt": "2018-08-23T09:05:07.134Z",
    "__v": 0
}

Trying to remove "_id" from the response like below:

tokens.create(req.body).then(function(session){
     delete session._id;
     return res.send(session); // _id still exist
});

I have seen the delete is deprecated in ES6, is this case issue? How can I delete an Item, in one line using the key?


回答1:


When you create a object using mongoose model then it will return you a model object instead of plain javascript object. So, when you do delete session._id; it will not work as session is a model object and it does not allow to change the property on model object directly.

You need to change the model object to plain JS object using toJSON() or toObject() method of model object and delete property on that:

tokens.create(req.body).then(function(session) {
  var sessionObj = session.toJSON();
  delete sessionObj._id;
  return res.send(sessionObj);
});



回答2:


Use destructuring and rest:

var res = {
    "name": "",
    "device": "",
    "session":"",
    "_id": "5b7e78c3cc7bca3867bbd1c9",
    "createdAt": "2018-08-23T09:05:07.134Z",
    "updatedAt": "2018-08-23T09:05:07.134Z",
    "__v": 0
};

var { _id, ...ret } = res ;

console.log(ret);


来源:https://stackoverflow.com/questions/51982694/how-to-delete-an-item-from-json-object-using-nodejs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!