【问题标题】:internal server error when defining allow/deny rules with meteor使用流星定义允许/拒绝规则时出现内部服务器错误
【发布时间】:2014-08-06 18:49:35
【问题描述】:

我想在用户填写输入并且该输入的字符数为 12(例如)时允许插入,否则拒绝。我在我的服务器中定义了如下规则:

if (Meteor.isServer) {
   Mydata.allow ({
    insert: function(userId, doc) {

     if ( $("#id").val().length === 12 ) {
       return true ;
     } else {
      return false ;
     }
    }
   });

  }

其中Mydata 是我的collection 的名称,它不为空,但使用此代码时,插入数据总是会失败并出现“内部服务器错误”。

设置此特定规则的正确方法应该是什么?

谢谢,

【问题讨论】:

  • 我猜你不应该在服务器上使用 jquery ...
  • 你应该使用允许/拒绝规则来检查模型(数据)的变化,而不是网页的状态
  • 好的,假设用户禁用了 javascript,这样他就可以在我的数据库中插入不正确的数据。对吗?

标签: meteor


【解决方案1】:

$ 未在服务器上定义。您需要获取用户输入并在客户端插入一个文档,然后在服务器上检查该文档。

if (Meteor.isClient) {

  Mydata.insert({yourfield: $("#id").val()});

} if (Meteor.isServer) {

 Mydata.allow ({
  insert: function(userId, doc) {
   return doc.yourfield && (doc.yourfield.length === 12);
  }
 });

}

【讨论】:

  • 我绝对喜欢 Meteor。谢谢
  • 它只会变得更好:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-25
  • 2015-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-28
相关资源
最近更新 更多