未捕获错误:不允许.不受信任的代码只能按ID更新文档.[403]

Thi*_*rer 3 javascript collections meteor

我有这个错误,但它没有指定哪个代码行有问题.有什么方法可以缩小我需要关注的代码吗?

不确定它是否是一个相关的问题,但是当我提交一个doc并且它应该识别我的时候user.username,但是当html显示时它就会出现空白{{author}}.

集合的代码(公共/服务器的共享文件夹)如下:

var post = _.extend(postAttributes, {
  userId: user._id, 
  author: user.username
});
Run Code Online (Sandbox Code Playgroud)


这是错误消息图像

感谢任何帮助!


更新:

将UserAccount代码转移到服务器文件夹后出现新的错误消息. Exception while simulating the effect of invoking 'postInsert' "Match error: Unknown key in field message" 在此输入图像描述

Aks*_*hat 8

您在客户端有代码,它使用的东西不是_id作为查询运算符来更新文档.

无法使用此类查询在客户端上进行更新.您可以在服务器上执行这些操作.

因此,如果你在某个地方有这样的代码,你可以运行它而不会抛出你得到的错误:

MyCollection.update({ someName: someValue }, {$set:{something:true}});
Run Code Online (Sandbox Code Playgroud)

你可以这样做:

var doc = MyCollection.findOne({ someName: someValue });
MyCollection.update({ _id: doc._id }, {$set:{something:true}});
Run Code Online (Sandbox Code Playgroud)

在这里,您明确定义了要更新的文档.要查找此代码,您可能希望查找.update可以在客户端运行的任何内容.