2015-09-09 1 views
0

Я новичок в метеор и autoform и пытаюсь получить форму для вставки в монго. Независимо от того, что я изменил, это просто не сработает. Я понятия не имею, что попробовать дальше.Метеор: автоформат не отправляет сообщения в mongo

Я удалил неуверенно и автоматически опубликовал. Прикрепленная ссылка на мой .js и мой html-файл.

У меня есть схема, получившая форму, чтобы показать на html отлично. теперь, когда я ударил, ничего не вводится в манго. Я разрешаю настройку правил. У меня тонна отображения console.logs, и все они запускаются и следуют так, как если бы сообщение было успешным. Фактически в onSuccess я получаю номер документа, но в моей БД нет ничего.

Любая помощь здесь очень ценится. Я знаю, что здесь должно быть что-то маленькое, но я долго терпел свой мозг в поисках бесконечных поисков.

.js файл без схемы. Полный JS файл в ссылке plnkr

if (Meteor.isClient) { 
    // ******************************************************** 
    // *** Creating the database scheme for the customer account 
    // ******************************************************** 
    customers = new Mongo.Collection("customer"); 
    AutoForm.debug(); 
    var postHooks = { 
     before: { 
      insert: function(doc) { 
       console.log("Getting to posting hooks"); 
       if(Meteor.userId()){ 
        doc.createdUser = Meteor.userId(); 
        doc.createdDate = Date(); 
        console.log("Got to the insert before hook!"); 
       } 
       return doc; 
      } 
     }, 
     after: { 
      // Replace `formType` with the form `type` attribute to which this hook applies 
      insert: function(error, result) { 
       console.log("Getting to the after insert function"); 
       console.log(error); 
       console.log(result); 
       console.log("New Document ID is " + this.docId); 
      } 
     }, 
     onSuccess: function(formType, result) { 
      console.log("Getting to the insert sucess area"); 
      console.log(result);  
     }, 
     onError: function(formType, error) { 
      console.log(error); 
     } 
    } 
    AutoForm.addHooks('insertCustomer', postHooks); 
    Template.customerTemplate.helpers({ 
     showLoginError: function(){ 
      return showCustomerSaveError; 
     } 
    }); 
} 


if (Meteor.isServer) { 
    customers = new Mongo.Collection("customer"); 
    customers.allow({ 
     insert: function (userId, doc) { 
      console.log("Getting to the insert server call"); 
      // the user must be logged in 
      return !! userId; 
     }, 
     update: function (userId, doc, fields, modifier) { 
      // can only change your own documents 
      return doc.owner === userId; 
     }, 
     remove: function (userId, doc) { 
      // can only remove your own documents 
      return doc.owner === userId; 
     }, 
     fetch: ['owner'] 
    }); 

} 

http://plnkr.co/edit/5pM0Co9luGLIBBNKP5YA

+0

Я не прочитал вопрос, но я предлагаю вам использовать Autoform.debug(). Это приведет к печати ошибок автоматической формы на консоли и упростит решение вашей проблемы. –

+0

У меня уже есть код, указанный в коде, и он только печатает одну вещь на консоли, которая является чистым методом для функции даты. Никаких других сообщений или сообщений не создается из отладки. – BobFranz

+1

Вы уверены, что нет ничего в db? Может быть, вы не публикуете документ, и он действительно находится в db. Показывая, что ваши журналы могут помочь отладки слишком –

ответ

1

Вы хотите добавить файл в базу данных, но не публиковать его. Запустите meteor add autopublish или зайдите непосредственно в MongoDB, чтобы увидеть документ.

+0

Это и комментарии выше помогли мне понять, что я не использовал методы публикации и подписки. Спасибо за помощь. – BobFranz