2015-11-03 58 views
0

我已经删除了自动发布以及不安全。我还创建了一个文件夹客户端和服务器,并且每个文件夹都有init.js,其中包含客户端代码和服务器代码。MeteorJS插入不工作

init.js客户端我的代码

Template.adminSetup.events({ 
    'submit #adminFormSetup': function(event) { 
     event.preventDefault(); 
     var adminid = event.target.adminid.value; 
     var adminUsername = event.target.adminUsername.value; 
     var adminEmail = event.target.adminEmail.value; 
     var fname = event.target.fname.value; 
     var lname = event.target.lname.value; 
     var gender = event.target.gender.value; 
     var dateBirth = event.target.dateBirth.value; 
     Meteor.call('insertAdminData',adminid,adminUsername,adminEmail,fname,lname,gender,dateBirth); 
     console.log(adminid); 
     console.log(adminUsername); 
     console.log(adminEmail); 
     console.log(fname); 
     console.log(lname); 
     console.log(gender); 
     console.log(dateBirth); 
     alert("Admin Account Successfully Created!") 
     Router.go('/accountChecker'); 
    } 
}); 

Meteor.subscribe('test'); 

上面的代码从表格得到值,现在我的init.js服务器端里面我有:

Meteor.publish('test', function(){ 
    return Meteor.users.find() 
    return AdminAccount.find() 
}); 

Meteor.methods({ 

    //------------------------------------------------------------- 
    //Method that will insert the admin data to the database 
    'insertAdminData': function(adminid,adminUsername,adminEmail,fname,lname,gender,dateBirth) { 
     AdminAccount.insert({ 
      adminid: adminid, 
      adminUsername: adminUsername, 
      adminEmail: adminEmail, 
      firstname: fname, 
      lastname: lname, 
      gender: gender, 
      dateBirth: dateBirth 
     }); 
     console.log("you clicked the right button"); 
    } 
    //------------------------------------------------------------- 
}); 

将数据存储在名为AdminAccount的集合中。插入数据时,控制台中没有错误或任何警告信号,但数据不会存储在AdminAccount集合中。我不确定代码中的错误。请指教。由于

+0

是你的控制台日志返回的信息?您可能正在向错误的模板添加事件,它始终发生在我身上 –

+0

@AramilRey - 我尝试在服务器端添加console.log,并且在执行事件时它不显示,日志应该显示出现。客户端的控制台登录显示表单中的正确数据,但插入它们似乎是个问题。 “Meteor.call()”方法似乎不起作用。 –

+0

在服务器端,我在控制台的下面添加了一个console.log(“success”);以查看这两个代码是否已连接,并且是自从日志显示以来它们已连接。我想知道它为什么不插入 –

回答

0

AdminAccount收集未被发布:

Meteor.publish('test', function(){ 
    return Meteor.users.find() 
    return AdminAccount.find() 
}); 

第一return防止以往任何时候都将达到的第二个。

你想从出版返回游标的数组:

Meteor.publish('test', function(){ 
    return [Meteor.users.find(), AdminAccount.find()]; 
}); 
+0

辉煌但简单的解释,令人惊叹。 。整理出来:)非常感谢你。 。 :) –

+0

享受流星:) –