我想删除一个对象的属性,但是这个属性根本没有被删除...
我的代码:
var tagFound = yield tags.findById(this.params.tagId);
debug('prior delete: %j', tagFound);
delete tagFound.password;
debug('after delete: %j', tagFound);
我得到的:
api_v1 prior delete: {"_id":"55e064e9727b44c32a262c0f","expires":"2015-08-29T13:40:57.673Z","password":"$2a$08$hucJyHIU5gholAB1L.wVKeFoTmvFho9xFiJAAvmwmtKphLuJ9Hq4K","type":"free","name":"teste","__v":0,"visible":true,"locations":[{"latitude":65.9667,"longitude":-18.5333,"_id":"55e064e9727b44c32a262c10","timestamp":"2015-08-28T13:40:57.572Z"}]}
api_v1 after delete: {"_id":"55e064e9727b44c32a262c0f","expires":"2015-08-29T13:40:57.673Z","password":"$2a$08$hucJyHIU5gholAB1L.wVKeFoTmvFho9xFiJAAvmwmtKphLuJ9Hq4K","type":"free","name":"teste","__v":0,"visible":true,"locations":[{"latitude":65.9667,"longitude":-18.5333,"_id":"55e064e9727b44c32a262c10","timestamp":"2015-08-28T13:40:57.572Z"}]}
也许是我的眼睛太累了,但我简直想不出这个问题的答案,有人发现我漏掉了什么明显的东西吗?
更新:我把这个放到http://jsfiddle.net/fc8mohwp/里面,问题是,在那里它能正常工作,但在这里(iojs)却不能。应该有什么区别吗?
delete
返回什么? - vaulttagFound
是从哪里来的?如果密码字段来自 HTML 标签,则无法删除。只有用户定义的属性可以被删除。至少在浏览器中是这样,在 Node 中可能会发生类似的情况。 - Daniele Torinonode.js
标签并插入io.js
。 - vault