流星初学者。只要了解一切如何运作,请耐心等待。
在一个文件中一切正常,但在安装iron:router
以获得多页应用程序之后,我意识到拥有单独的客户端和服务器文件会更好。不幸的是,现在我无法在服务器和客户端之间同步集合。我已经阅读了大量的教程,但没有任何工作。
在我的server.js
文件中:
Streams = new Meteor.Collection("streams");
if (Meteor.isServer) {
Meteor.publish('streams', function () {
return Streams.find();
});
}
在我的client.js
文件中:
if(Meteor.isClient) {
Meteor.subscribe("streams");
Template.body.helpers = function(){
return Streams.find();
}
}
经过调试,它说" Streams"未在客户端中定义。发生了什么事?如何连接集合?
答案 0 :(得分:3)
经典架构:
var databaseVersion = GetCurrentDacVersionFromDatabase(dbConnString);
var dacPackage = DacPackage.Load(dacPacPath);
if (dacPackage.Version > databaseVersion)
{
var dacServices = new DacServices(dbConnString);
// Change any dacDeployOptions here.
var dacDeployOptions = new DacDeployOptions {RegisterDataTierApplication = true};
dacServices.Deploy(dacPackage, "BioMasterMain", true, dacDeployOptions); <-- Fails here
}
lib/streams.js
Streams = new Meteor.Collection("streams");
server/streams.js
Meteor.publish("streams", function () {
return Streams.find();
});
client/streams.js
答案 1 :(得分:0)
您还需要在客户端上定义Streams
。
if(Meteor.isClient) {
Streams = new Meteor.Collection("streams");
Meteor.subscribe("streams");
Template.body.helpers = function(){
return Streams.find();
}
}
答案 2 :(得分:0)
如果您使用autopublish包,默认情况下。你只需要做
LIB / streams.js
Streams = new Meteor.Collection(“streams”);
一部分。