流星订阅数据未显示在 Chrome 控制台中
Meteor subscription data not showing up in Chrome Console
我正在使用Diffial的流星样板作为简单应用程序的起点。 目前它包括铁路由器1.0.6。
我想处理诸如/epidodes/5 之类的路由,其中它根据 episodeNumber 属性显示来自 Episode 集合的文档数据。
下面是一个示例文档,我可以使用"流星壳"进行查询:
> Episodes.findOne({episodeNumber: 5})
{ title: 'Ingaus carsur diain nofaex deradisancom.',
description: 'Warde tu alde ationsome an. Ryretyening lowtheland iti combeex. Proset mafacic lyed oan odiscon alsub isper. Es tiestionthe perconsiy lytion ac tioners inter mycal. Eded uernlarer indis u minca taladpaicar mycom. Cuopbleerpo tem ausin fored alersed mentfa eredal iterning peunbae ex. Oer omade the ican alfor pening. Thederder ingpro reumer esconex. Postions ery terre tionthepen aatcoming tyre beter protioni tionedpe riter. Toreraners typle erntyraa solyi. Themag alrei raat protionaset edcom cypro atapasi afthe iun edterfiassup.',
vimeoId: '80816872',
publishedOn: 510603296882,
free: false,
rating: 2,
episodeNumber: 5,
_id: 'Ewznhyex5puyccSFK' }
但是,它没有显示在谷歌浏览器的控制台中。
以下是相关文件:
合集/剧集.js
Episodes = new Mongo.Collection('episodes');
路线.js
Router.map(function() {
// some other routes...
// the route where I'm stuck
this.route('episodesShow', {
path: '/episodes/:episodeNumber',
waitOn: function() {
return Meteor.subscribe('episode', this.params.episodeNumber);
},
data: function() {
return Episodes.findOne({episodeNumber: this.params.episodeNumber});
}
});
服务器/发布.js
Meteor.publish("episode", function(episodeNumber) {
check(episodeNumber, String);
return Episodes.findOne({episodeNumber: episodeNumber});
});
有关如何解决此问题以查看客户端未显示数据的原因的任何指导将不胜感激。
我认为
问题是我有另一个名为 episodes 的订阅,它与集合名称相同。
合集/剧集.js
Episodes = new Mongo.Collection('episodes');
服务器/发布.js
Meteor.publish("episodes", function() {
return Episodes.find({});
});
我将已发布记录集的名称更改为剧集列表:
Meteor.publish("episodesList", function() {
return Episodes.find({});
});
为了解决这个问题,我还创建了一个名为 client/main 的文件.js并订阅了我已经发布的 episodesList:
Meteor.startup(function() {
Meteor.subscribe("episodesList");
});
我永远无法让 episodeNumber 参数在/episodes/:episodeNumber 路由中工作。 我能够让_id工作,但这很丑陋,所以我创建了一个 slug 属性并且工作正常。
下面是路由中的更新定义.js:
this.route('singleEpisode', {
path: '/episodes/:slug',
waitOn: function() {
return Meteor.subscribe('episodesList');
},
data: function() {
return Episodes.findOne({slug: this.params.slug});
}
});
尝试返回光标而不是数组,例如:
Meteor.publish("episode", function(episodeNumber) {
check(episodeNumber, String);
return Episodes.find({episodeNumber: episodeNumber});
});
不能在发布函数中发送非游标。
您可能应该在控制台中出现错误server
说
publish function not-returning array of non-cursor
或类似的东西
尝试发布游标
Meteor.publish("episode", function(episodeNumber) {
check(episodeNumber, String);
//check whether the episodes are existed or not
console.log(Episodes.find({episodeNumber: episodeNumber}).count());
return Episodes.find({episodeNumber: episodeNumber});
});
并检查您的服务器控制台(终端)是否存在错误
相关文章:
- 如何使用Protractor从Chrome控制台获取所有日志
- 如何让JS脚本在导航后继续运行(谷歌chrome控制台)
- "资源不足错误“;当从Chrome控制台重复发出ajax请求时
- Chrome控制台-整个文件的断点
- 未捕获的引用错误:未在Javascript(Chrome控制台)中定义文档
- 停用 Chrome 控制台开发者工具
- 如何使用Chrome控制台单击网页中的某些按钮
- 如何在 Zkoss 中启用禁用的 chrome 控制台日志输出
- 正则表达式在从 JS 文件和 Chrome 控制台运行时会产生不同的匹配项
- 使用 AJAX 的函数抛出“意外令牌 }”,Chrome 控制台
- 所有错误都显示在 Chrome 控制台 JavaScript 错误中
- 如何通过chrome控制台访问主干模型
- Chrome控制台给出非法代币错误
- Javascript Object属性在声明之前已登录Google Chrome控制台
- 如何使用chrome控制台在对象中找到特定的密钥
- 谷歌Chrome控制台在特定网站的每个页面上都运行一个命令
- chrome控制台显示带有摘要身份验证的密码
- Chrome控制台显示未捕获类型错误:无法读取属性'启动'的未定义
- 如何摆脱虚拟机线在Chrome控制台
- Jquery/Javascript代码模拟键入在谷歌chrome控制台的文本字段