Meteor发布/订阅无法从服务器文件夹中运行
Meteor publish/subscription not working from server folder
我制作了一个简单的流星应用程序,用于学习如何进行CRUD操作。它效果很好,但我在发布/订阅我的收藏时遇到了问题,我一辈子都无法解决。
我的文件夹结构是
/client
/main.js
/templates
/public
/server
/main.js
我在服务器文件夹中有一个main.js文件,其中包含带有发布功能的基本集合
/server/main.js
Dist = new Mongo.Collection('dist');
Meteor.publish('dist', function (){
var currentUser = this.userId;
return Dist.find({owner: currentUser});
});
以及在客户端文件夹下的订阅
/client/main.js
Meteor.subscribe('dist');
我在一个模板中有一个for each循环,用来显示用户返回的信息。当我的服务器main.js在服务器文件夹中时,我的模板循环只返回CRUD调用,服务器工作正常。如果我将服务器main.js文件移到项目的根目录中,一切都会按预期进行。然而,这是否违背了发布/订阅方面的目的:将主集合保留在服务器端,同时只向用户显示他们自己的数据?
我不明白为什么在无休止的谷歌搜索之后会发生这种情况——似乎没有什么不同。自动发布和不安全也已删除。我认为唯一的第三方包是样式引导。
您尚未在客户端上创建Collection
。因此,您已经订阅了它,但无法访问带有变量的数据。要解决此问题,只需将Dist = new Mongo.Collection('dist');
放在共享文件夹中(除client
、server
、private
之外的任何文件夹…)或同时放在两个位置即可。
我认为您甚至可以像现在这样启动应用程序,在浏览器控制台中声明集合,然后可以从客户端Dist
变量访问您的数据。
将它放在共享文件夹中可以让您一次性编写代码并在任何地方执行
声明集合不会自动使其充满服务器上的所有数据(除非您有autopublish
)。它只是在客户端上做了一个终点,你必须用订阅和精心编写的有边界的出版物来填写。
相关文章:
- Meteor发布/订阅无法从服务器文件夹中运行
- 当通过Node.js服务器访问时,Javascript文件在Chrome上工作,但从文件夹打开时不工作
- 如何从本地文件夹(磁盘存储)读取或获取图像文件,并使用nodejs服务器将其发送到Angularjs
- javascript如何从服务器获取文件夹中文件的url
- 我正在尝试将javascript文本框的输入保存回服务器.我想从保存的弹出文本框中获得输入,以重命名文件夹
- JS脚本文件夹,而不是“;脚本”;在服务器ASP.NETMVC上部署后不可见
- 是否可以在不使用任何 severside 脚本语言的情况下将图像上传到服务器文件夹
- 如何使用它的相对路径访问tomcat服务器中的文件夹
- 将文件夹上传到服务器(mvc spring)
- 使用 JavaScript 和 Django 将文本文件上传到服务器中的某个文件夹
- 将文件夹上传到服务器
- 如何在没有服务器的情况下运行 HTML 时将文件夹设置为根路径
- 对于 Node Js 服务器,如何从不同的文件夹引用静态 html 文件
- 来自服务器映像文件夹的 JSP HTML 图像选框
- 如何从 URL 中的节点.js服务器文件夹获取图像
- 我的node.js简单web服务器没有'无法访问父文件夹
- 如何将base64映像存储到数据库和我的服务器文件夹中
- 加载一个托管在应用中与web服务器一起暴露的资产文件夹中的图像文件
- 如何使用PHP从服务器文件夹中检索文件,并使用javascript在网页上显示/下载它
- 将文件从服务器文件夹下载到客户端pc