я нашел эту ошибку в консоли сервера:Meteor.publish() сгенерирует исключение в Defer обратного вызова
Exception in defer callback: TypeError: undefined is not a function at packages/ddp/livedata_server.js:1054:1 at Array.forEach (native) at Function..each..forEach (packages/underscore/underscore.js:105:1) at [object Object]._.extend._callStopCallbacks (packages/ddp/livedata_server.js:1053:1) at [object Object]._.extend._deactivate (packages/ddp/livedata_server.js:1043:1) at packages/ddp/livedata_server.js:803:1 at Function..each..forEach (packages/underscore/underscore.js:113:1) at [object Object]._.extend._deactivateAllSubscriptions (packages/ddp/livedata_server.js:802:1) at packages/ddp/livedata_server.js:444:1 at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
И вот код я использую:
/* Source: http://phucnguyen.info/blog/how-to-publish-to-a-client-only-collection-in-meteor/ */
var subs = {};
Meteor.publish(
// THROW AN 'EXCEPTION IN DERFER CALLBACK: ...'
'helperPublication',
function() {
var subscription = this;
subs[subscription._session.id] = subscription;
Datasets.find().map(function (dataset) {
subscription.added(
'subdatasets',
dataset._id,
{
name: dataset.name,
data: [], // To avoid "Uncaught TypeError: Cannot read property 'length' of undefined" error on load
peaks: [] // Idem
}
)
});
subscription.onStop();
subscription.ready()
});
Вы можете найти все приложения в следующем метеорометре: http://meteorpad.com/pad/6NDneym2qEW7pF9JM/ClearChrom
Я думаю, что есть несколько вещей, которые вы ошибались. Что именно вы пытаетесь достичь с помощью этого кода? – Kriegslustig
Для обеспечения производительности я использую две отдельные базы данных. Один из них называется наборами данных и используется клиентами (ограниченным доступом) и сервером. Другая - это база данных только для клиентов: она хранит клоны документов Datasets **. НО ** данные «ключи» - это короткие подмножества данных (загрузка по требованию). С помощью приведенного выше кода я хотел бы дублировать документы Datasets в базе данных только на стороне клиента. И, факультативно, я хочу сделать это для каждого подключенного клиента (но, откровенно говоря, мне действительно не нужно ни в коем случае не хотеть этого делать, но я не знал, как изменить эту часть кода Phuc Nguyen ...). Это делает его более ясным? –