我遇到了控制台错误:
Uncaught TypeError: Object #<Object> has no method 'publish'
我的server / server.js中有一行 (控制台说错误就在这里)
Meteor.publish("votes");
P.S。在model.js中有这一行:
Votes = new Meteor.Collection("votes");
并且在client / client.js中有
Meteor.subscribe("votes");
(它不会在客户端部分发誓)
感谢:)
答案 0 :(得分:1)
自从被问到这一段时间已经有一段时间了,但是因为我刚碰到并发现了同样的问题...
我怀疑您在客户端和服务器之间共享的文件中进行了Meteor.publish("votes");
调用,这意味着它在两个上下文中都会执行。
Meteor
类的客户端表示不支持publish
,仅支持服务器。
如果将此调用移动到仅服务器文件(例如在<project_name>/server
中)或在下面的服务器执行上下文中,则错误应该消失。
if (Meteor.isServer) {
Meteor.publish("votes", {
return Votes.find(); // or whatever you like
});
}
答案 1 :(得分:1)
修复是 - &#34;流星更新&#34; :)
答案 2 :(得分:0)
您的发布功能应包含要发布内容的实际功能。
来自文档:
要将记录发布到客户端,请在服务器上调用Meteor.publish 两个参数:记录集的名称和发布功能 Meteor每次客户订阅该名称时都会调用。
所以函数看起来应该是这样的:
Meteor.publish("votes", function () {
return Votes.find();
});
这可能是你遇到的问题,也可能不是,但这是我看到的第一个问题。