meteor - Meteor: 匹配错误:Match.OneOf 或者 Match.Optional 验证失败( web socket )

  显示原文与译文双语对照的内容
0 0

我有一个使用 Meteor 0.9的网站。 我已经在 OpenShift ( http://www.truthpecker.com ) 上部署了这个网站。

我遇到的问题是当我进入站点(/discover )的路径时,有时候( 虽然并非总是),所需要的数据不是由 Meteor 获取的。 相反,我得到以下错误:

在客户端:

WebSocket connection to 'ws://www.truthpecker.com/sockjs/796/3tfowlag/websocket' failed: Error during WebSocket handshake: Unexpected response code: 400 

在服务器端:

Exception from sub rD8cj6FGa6bpTDivh Error: Match error: Failed Match.OneOf or Match.Optional validation
 at checkSubtree (packages/check/match.js:222)
 at check (packages/check/match.js:21)
 at _.extend._getFindOptions (packages/mongo-livedata/collection.js:216)
 at _.extend.find (packages/mongo-livedata/collection.js:236)
 at Meteor.publish.Activities.find.user [as _handler] (app/server/publications.js:41:19)
 at maybeAuditArgumentChecks (packages/livedata/livedata_server.js:1492)
 at _.extend._runHandler (packages/livedata/livedata_server.js:914)
 at _.extend._startSubscription (packages/livedata/livedata_server.js:764)
 at _.extend.protocol_handlers.sub (packages/livedata/livedata_server.js:577)
 at packages/livedata/livedata_server.js:541
Sanitized and reported to the client as: Match failed [400]

谁能帮助我消除这个错误并让网站正常工作? 我很感激 !

托尼

p 。1: 我从未使用本地计算机获得这里错误。

编辑:

导致问题的线路是这个( 行 41 ):

return Activities.find({user: id}, {sort: {timeStamp: -1}, limit:40});

活动集合中的一个文档如下所示:

{
"user" :"ZJrgYm34rR92zg6z7",
"type" :"editArg",
"debId" :"wtziFDS4bB3CCkNLo",
"argId" :"YAnjh2Pu6QESzHQLH",
"timeStamp" : ISODate("2014-09-12T22:10:29.586Z"),
"_id" :"sEDDreehonp67haDg"
}

当我在 mongo shell的第 41行运行查询时,会出现以下错误:

error: {"$err" :"Unsupported projection option: timeStamp","code" : 13097 }

我也不清楚为什么。 你也能帮我? 谢谢你。

时间:原作者:1个回答

0 0

你的网站上有一个与你的check 验证不匹配的文档。

你所拥有的验证在 app/server/publications.js:41

So属性以某种方式存在,但是文档的属性既不是中的值

你必须为导致这里集合的集合进行检查,并删除或者更正导致 check 语句与语句匹配的属性。

更新更新的问题。

你正在 meteor mongo/mongo shell 中运行 Meteor 命令。 你得到的错误与 Meteor 中的问题无关,要在 mongo shell 中排序,你要做的是 activities.find(..).sort(),而不是 activities.find(.., { sort : {..}) 这与问题无关

问题很可能是你的id 实际上不是一个字符串。 它应该是你要查找的文档的sEDDreehonp67haDg 。 你可能希望使用调试器来查看它实际上是什么。

原作者:
...