我正在做新手教程“simple-todo”,并注意到一旦我在步骤9中添加了安全性,我就不能再删除在此之前创建的任务。
问题是,我的remove方法正在进行检查,以确保它接收到的ID是一个字符串,并且当我使用this_.id时,先前通过控制台执行的待办任务返回一个对象。
换句话说:通过终端创建的任务,this._id -> ObjectId( "57a128afbe5fd7e7ba9a6fca“)使用Tasks.insert方法创建的任务,this._id ->”57a128afbe5fd7e7ba9a6fca“
而且新的remove方法不喜欢ObjectId部件。我怎么才能只拿到身份证?我认为它应该是类似于this._id._id的东西,但这是未定义的。解决方法是从" remove“方法中删除检查,这是不太安全的。
链接:https://www.meteor.com/tutorials/blaze/security-with-methods
发布于 2016-08-04 08:14:16
您可以使用this._id._str
获取ObjectId的十六进制部分。
我建议您的方法只使用字符串,并在客户端进行检查,看看是否需要使用this._id或this._id._str
https://stackoverflow.com/questions/38755539
复制相似问题