Я - новичок в Метеор. Я пытаюсь создать доказательство концепции с использованием Meteor, где обновления для Mongo oplog отображаются на экране браузера.Meteor.js - Как наблюдать за изменениями() с клиентской стороны
В настоящее время я пытаюсь адаптировать простую информацию для этой цели. Я получил обновления журнала на сервере, но не знаю, как перенести это на экран браузера клиента?
if(Meteor.isClient) {
// counter starts at 0
Session.setDefault('counter', 0);
Template.hello.helpers({
counter: function() {
return Session.get('counter');
}
});
Template.hello.events({
'click button': function() {
// increment the counter when button is clicked
Session.set('counter', Session.get('counter') + 1);
}
});
}
if(Meteor.isServer) {
Meteor.startup(function() {
// code to run on server at startup
var Test = new Mongo.Collection('test');
var query = Test.find({});
var init = true;
query.observeChanges({
added: function(id, fields) {
if(!init)
console.log('doc inserted');
},
changed: function(id, fields) {
console.log('doc updated');
},
removed: function() {
console.log('doc removed');
}
});
init = false;
});
}
Но я слышал, что это было небезопасно. – Wes
Я предполагаю, что безопасный способ - опубликовать и подписаться, хотя я не уверен, как это будет работать здесь. – Wes
Убедитесь, что вы должны использовать публикацию/подписку. В вашей клиентской коллекции представлены только данные, которые вы публикуете на своем сервере. Прочтите это и попробуйте: https://www.discovermeteor.com/blog/understanding-meteor-publications-and-subscriptions/ –