2016-01-20 92 views
1

我有插入的数据收集问题,它说,在控制台:错误调用方法“addReservation”:内部服务器错误[500] 这是我的预约模板:错误调用方法“addReservation”:内部服务器错误[500]

<template name="reservations"> 
    <div class="container-fluid registration-form"> 
     <form class="new-reservation"> 
      <div class="row"> 
       <input type="text" name="title"/> 
</div> 
      <button type="submit" class="btn btn-success">Add reservation</button> 
     </form> 
     <div class="row"> 
      <div class="col-md-6"> 
       <ul class="list-inline"> 
        {{ #each reserve}} 
        {{ >reservationForm }} 
        {{/each}} 
       </ul> 
      </div> 
     </div> 
    </div> 
<template name="reservationForm"> 
    <li>{{title}}</li> 
</template> 

这是js文件:

NewReservations = new Mongo.Collection('reserve'); 
在isClient

Template.reservations.helpers({ 
     reserve: function(){ 
      return NewReservations.find(); 
     } 
    }); 

    Template.reservations.events({ 
     'submit .new-reservation': function(event){ 
      var title = event.target.title.value; 
      Meteor.call("addReservation", title); 
      event.target.title.value = ""; 
      return false; 
     } 
    }) 

这是isServer

Meteor.methods({ 
     addReservation: function(title){ 
      NewReservations.insert({ 
       title: title 
      }); 
     } 
    }) 

我删除不安全和自动发布。 enter image description here

+0

尝试在插入之前在服务器上记录'title'。这是你期待的吗? – richsilv

+0

您有范围问题。您的'NewReservations'集合似乎无法从方法主体访问。 –

+0

[Meteor中的全局变量]的可能重复(http://stackoverflow.com/questions/27509125/global-variables-in-meteor) –

回答

1

你的服务器控制台说NewReservations没有定义,这意味着你的服务器没有找到这个变量/数据库。我看到的唯一可能的问题是你没有在两个范围内定义数据库。我的意思是你可能只在客户端或服务器端定义了你的db

基本上你需要把Meteor.isClientMeteor.isServer

NewReservations = new Mongo.Collection('reserve'); 

之外。