Javascript 流星,流星中的呼叫问题?
我需要知道Meteor.call的用法。我做了一个简单的例子,如下所示。问题是它永远不会进入Javascript 流星,流星中的呼叫问题?,javascript,meteor,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()
。请检查下面的代码,并建议我怎么做,以免出现匹配失败的错误
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);
}
});
};
匹配失败
错误指出检查功能拒绝了无效数据。我猜问题出在用户id上:当你调用你使用的方法时,UserID
参数,但是你检查小写的UserID
。试着修复它,看看它是否有效。另外,尝试注释掉检查调用,查看其余代码是否正在运行。另外,如何验证没有调用该方法?请注意,日志应该在服务器控制台中可见。不,这不是问题,我也检查过一次。Meteor.call永远不会使用该方法。您能给我提个建议吗。@Hubert OG