尝试删除Meteor中的文档时:“删除失败:内部服务器错误”

时间:2014-03-26 15:51:03

标签: javascript mongodb meteor

我正在尝试通过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;
  }
});

2 个答案:

答案 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