流星审计 - 参数检查

时间:2015-09-28 18:39:50

标签: meteor

我有一个Meteor项目,我正在使用audit-argument-check。我收到一条错误消息

Error: Did not check() all arguments during publisher 'document

我知道这与audit-argument-check无法检查所有参数有关。但就我而言,我检查了所有这些。具体来说,我已经定义了一个集合'documents'并附加了一个SimpleSchema。作为铁路由器的一部分,我有以下内容:

Router.route('customerDocumentShow', {
    template: 'customerDocumentShow',
    path: 'customer/documents/:_id',
    waitOn: function () {
      return Meteor.subscribe('document', this.params._id);
    },
    data: function () {
      return Documents.findOne(this.params._id);
    }
  });

所以我只传递了documentId(this.params._id)。在服务器上,我定义了一个方法:

Meteor.methods({
  documentsReadMethod: function(documentId){
    check(documentId, String);

    var documentItem = Document.findOne(argument);

    if (!documentItem) {
      throw new Meteor.Error(500, 'Error 500: Not Found', 'No documents found.');
    }

    return documentItem;
  }
});

所以我在服务器方法中检查documentId。所以不确定为什么我收到此错误消息。

注意:我不能完全确定的一件事是我需要如何调用此方法(现在,它是documentsReadMethod_。我没有明确调用(在客户端上):

Meteor.call(documentsReadMethod, this.params_id);

因为我正在使用autoform,collection2和simpleschema。我整个周末都在度过,但不知道。有什么想法吗?

注意:代码位于github:https://github.com/wymedia/meteor-starter-base

2 个答案:

答案 0 :(得分:1)

问题在于发布。你没有在这里查看id:

https://github.com/wymedia/meteor-starter-base/blob/master/server/publications/documents.js#L16

只需添加check(id, String);第16行即可。

答案 1 :(得分:0)

我和另一个tuto有同样的问题!

check is not defined in meteor.js找到答案:自Meteor v1.2起,您必须添加此软件包:

$ meteor add check