流星中的Meteor.call问题?

时间:2014-04-02 15:56:43

标签: javascript meteor

我需要了解Meteor.call的用法。我做了一个简单的例子,如下所示。问题是它永远不会进入insertDetails()。您能否请检查下面的代码并建议我做什么,以免我得到匹配失败错误。

Client.JS

Meteor.methods
({
    //this method doesn't cal when using meteor.cal
    insertDetails : function(adData, callback)
     {
       console.log(">>>>>>>>>>>>>>>>>>> ******* insertDetails ");
        checkFields(adData);
        var fields = 
        {
            userID: adData.UserID,
            fname: adData.fname,
            lname: adData.lname,
            dob: adData.dob
         };

         return Client.insert(fields, callback);
      }
});


// SERVER-SIDE HELPERS ************************************

var nonEmpty = Match.Where(function(x) {return !!x;});

var checkFields = function(adData)
 {
   console.log(">>>>>>>>>>>>>>>>>>> checkFields ");
   check(adData.userID, nonEmpty);
    check(adData.fname, nonEmpty);

};

Insert.js

if (Meteor.isClient) 
{
  Template.hello.events({
    'submit #addnewuserdetails': function (e,t)

     {

      if (typeof console !== 'undefined')

      console.log(">>>>>>>>>>>>>>>>>>> Add button in details ");

      e.preventDefault();
          saveClientDetails();
    }
  });
}


var saveClientDetails = function() 
{
    console.log(">>>>>>>>>>>>>>>>>>> saveClientDetails ");
   var fields =  {
        //ownerId: Meteor.userId(),
                        UserID : $('#userid').value

                    ,fname : $('#fname').value

            ,lname :$('#lname').value

            ,dob : $('#dob').value


    };
      console.log(">>>>>>>>>>>>>>>>>>> fields.UserID "+fields.UserID);    
        //here cal to above insertDetails()
         Meteor.call("insertDetails", fields, function(err, result)
           {
              if (!err)
                  {
                       console.log(">>>>>>>>>>>>>>>>>>> saveClientDetails Success");
                   } 
               else 
                {
                      console.log(">>>>>>>>>>>>>>>>>>> saveClientDetails ERROR "+err.reason);
                 }
        });

};

1 个答案:

答案 0 :(得分:0)

Match Failed错误指向检查功能拒绝的无效数据。我的猜测是问题在于用户ID:当你调用方法时,你使用UserID参数,但是你检查小写userID。尝试修复它,看看它是否有效。另外,尝试注释check调用并查看其余代码是否正在运行。另外,如何验证方法未被调用?请注意,日志应该在服务器控制台中可见。