Попытка понять CRUD в Meteor & имеет фундаментальную проблему, которая заключается в том, что когда я удаляю автоматическое опубликование и использование явных pub/sub, вставки коллекции из клиентского обновления, а не клиентской коллекцией.Meteor.js: Collection.insert работает на сервере, но не на клиенте
Результатом является то, что, хотя значения полей получены правильно, вставка не выполняется на стороне клиента. На стороне сервера запись вставлена правильно.
$ метеор удалить autopublish
Создать HTML-файл формы (она действует и функционирует, как и ожидалось), то:
/server/publish.js Файл:
Meteor.publish('todos'), function() {
return Todos.find();
}
Файл /lib/collections.js:
Todos = new Mongo.Collection('todos');
/client/subscribe.js Файл:
Meteor.subscribe('todos');
/client/todos.js Файл:
Template.todosList.helpers({
todosList: function() {
return Todos.find();
},
});
Template.todoNew.events({
'submit form': function(event) {
event.preventDefault();
var theRecord = {
description: $(event.target).find('[id=description]').val(),
priority: $(event.target).find('[id=priority]').val()
};
// Display correct field values, so form data is OK
console.log('Attemping to insert: ' + theRecord.description);
Todos.insert(theRecord, function(error) {
// This error always occurs
console.log('error inserting: ' + theRecord.description);
});
}
});
Большое спасибо - я все еще не могу заставить его работать. Я пробовал пару разных версий, и они приводят к ошибкам во время выполнения: ** Исключение при вызове метода/todos/insert 'TypeError: Невозможно прочитать свойство' description 'null ** Вот мои попытки: * * Файл /server/publish.hs:** ' Todos.allow ({ вставка: функция (идентификатор пользователя, DOC) { возврата (doc.description && doc.priority); } }); ' А: ** Файл /server/publish.hs:** ' Todos.allow ({ вставки: функция (theRecord) { возвращение (theRecord.description && theRecord.priority); } }); – tomcam
@tomcam, первым параметром является идентификатор пользователя (или «null», если пользователь не подписан), второй параметр сохраняет документ. –
Мысль, @ peppe-l-g, и спасибо за ответ! Отсюда моя вторая версия, которая также не работает. Я специально удалил autopublish, в то время как ** не ** добавление учетных записей-ui. Мне кажется, что pub/sub технически не имеет никакого отношения к учетным записям, хотя, конечно, практически говоря, это должно быть в любом полезном приложении. Я не прав? Должен ли я всегда добавлять учетные записи, когда я удаляю autopublish? – tomcam