我正在尝试通过ObjectId删除文档。
Template.conferenceItem.events({
'click #delete' : function () {
Conferences.remove(this._id);
}
});
在我的控制台中,我收到“删除失败:内部服务器错误”。如果我在控制台中运行此错误,我会收到同样的错误:Conferences.remove('tfD9KQsFp8LoftHgS')
,其中tfD9KQsFp8LoftHgS
是现有的ObjectId。
修改
我在conferences.js的collections文件夹中有以下代码:
Conferences = new Meteor.Collection('conferences');
Conferences.allow({
remove: function(userID, doc){
// only allow remove if you are logged in
return !! userId;
}
});
答案 0 :(得分:1)
这可能是Meteor allow错误。
Collection.allow :允许用户根据您定义的限制从客户端代码直接写入此集合。
您必须授权不受信任的客户端代码允许在代码中的某个位置删除吗?
您可能希望在服务器代码中执行以下操作:
Conferences.allow({
remove: function (userId, doc) {
// check for proper permissions using passed arguments if any here
return true;
}
});
答案 1 :(得分:0)
我相信你在与删除相关的功能中有一个拼写错误。流星文档示例
remove: function (userId, doc) {
// can only remove your own documents
return doc.owner === userId;
}
所以将userID更改为userId