tom*_*met 6 websocket openshift meteor
我有一个使用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
Run Code Online (Sandbox Code Playgroud)
在服务器端:
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]
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我消除此错误并使网站工作?我将非常感激!
托尼
PS:我从未使用localhost获得此错误.
编辑:
造成问题的线就是这个(第41行):
return Activities.find({user: id}, {sort: {timeStamp: -1}, limit:40});
Run Code Online (Sandbox Code Playgroud)
活动集合中的一个文档如下所示:
{
"user" : "ZJrgYm34rR92zg6z7",
"type" : "editArg",
"debId" : "wtziFDS4bB3CCkNLo",
"argId" : "YAnjh2Pu6QESzHQLH",
"timeStamp" : ISODate("2014-09-12T22:10:29.586Z"),
"_id" : "sEDDreehonp67haDg"
}
Run Code Online (Sandbox Code Playgroud)
当我在mongo shell中运行第41行中完成的查询时,出现以下错误:
error: { "$err" : "Unsupported projection option: timeStamp", "code" : 13097 }
Run Code Online (Sandbox Code Playgroud)
我不是真的为什么会这样.你也可以帮助我吗?谢谢.
您网站上的文档与您的check验证不匹配。
您拥有的验证位于app/server/publications.js:41
因此,有问题的属性以某种方式存在Match.optional(Match.oneOf(xx)),但文档的属性不是中的值Match.oneOf
您必须仔细检查导致此问题的集合的文档,并删除或更正导致此问题与您的check声明相匹配的属性。
您正在meteor mongo/mongo shell 中运行 Meteor 命令。您得到的错误与 Meteor 中的问题无关,要在 mongo shell 中排序,您会执行activities.find(..).sort(),而不是activities.find(.., { sort : {..})。这与问题无关
问题很可能是您id实际上不是一个字符串。它应该是sEDDreehonp67haDg针对您要查找的文档的。您可能想使用调试器来查看它到底是什么。
| 归档时间: |
|
| 查看次数: |
7160 次 |
| 最近记录: |