Exception 流星调用期间未检查()所有参数
我的流星日志中充满了这样的错误:Exception 流星调用期间未检查()所有参数,exception,meteor,Exception,Meteor,我的流星日志中充满了这样的错误: Exception while invoking method 'updateShotTitle' Error: Did not check() all arguments during call to 'updateShotTitle' at _.extend.throwUnlessAllArgumentsHaveBeenChecked (packages/check/match.js:352) at Object.Match._failIfA
Exception while invoking method 'updateShotTitle' Error: Did not check() all arguments during call to 'updateShotTitle'
at _.extend.throwUnlessAllArgumentsHaveBeenChecked (packages/check/match.js:352)
at Object.Match._failIfArgumentsAreNotAllChecked (packages/check/match.js:108)
at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1596)
at packages/ddp/livedata_server.js:648
at _.extend.withValue (packages/meteor/dynamics_nodejs.js:56)
at packages/ddp/livedata_server.js:647
at _.extend.withValue (packages/meteor/dynamics_nodejs.js:56)
at _.extend.protocol_handlers.method (packages/ddp/livedata_server.js:646)
at packages/ddp/livedata_server.js:546
这是客户端代码:
keypress .info-title-input': (e) ->
if e.keyCode == 13
name = $(e.currentTarget).val()
file_name = @.file_name
shot_id = @.shot_parent
check(shot_id, String)
check(file_name, String)
check(name, Match.Any)
Meteor.call("updateShotTitle", shot_id, file_name, name)
在方法上也有检查,但没有什么能帮助我理解为什么会发生这种情况
updateShotTitle: (shot_id, file_name, title) ->
check(shot_id, Match.Any)
check(file_name, Match.Any)
check(title, Match.Any)
Shots.update(
{ shot_id: shot_id, "images.file_name": file_name },
{ $set: { "images.$.title": title } }
)
这不是唯一一个给我这些错误的方法,几乎所有的方法都会抛出这种异常。我做错了什么 一种可能发生这种情况的方法是,如果传递的参数比函数预期的多。例如Meteor.callupdateShotTitle,1,2,3,4。这是应用程序中唯一调用UpdateShottle的地方吗?我检查了所有内容,没有传递更多参数。虽然我在客户机上的其他地方调用了这个方法,但并没有检查。我会试着检查一下,看看问题是否仍然存在。@doomie,你最后的评论毫无意义。检查应该在服务器上的方法中进行,而不是在进行调用的客户端上。@PeppeL-G,hmmm。。。我在服务器上签入了这个方法,它抛出了异常。现在我在Meteor.call之前检查了客户,没有出现异常。我做了异常后说:打电话期间没有检查奇怪…:/不确定check消息是如何触发的,但您在调用中传递了一个参数名,并且在check中该参数名为title。如果在这两个站点上使用相同的标识,您是否仍然看到异常?