流星方法给出错误

时间:2016-04-19 23:11:10

标签: javascript meteor

我是Meteor的新手。我试图从事件助手调用Meteor.method(' addTask')并且我不断收到错误:"错误调用方法' addTask':方法' ; addTask'找不到[404]"。我将把我的代码放在下面:

Template.add_task.events({
'submit .js-emoticon': function(event){
    event.preventDefault();
    // console.log('clicked');
    // var text = event.target.text.value;  
    // $('#text_display').html(text);
    // $('#text_display').emoticonize();
    Meteor.call("addTask");
}

});

Meteor.method在这里:

Meteor.methods({
'addTask':function(){
    var task = event.target.text.value;
    Items.insert({
    created:new Date().toLocaleDateString("en-US"),
    task:task
    });
    console.log(task);
}

});

两者都在客户端文件夹中的main.js上。我试图将该方法放在server / main.js上,我收到一个错误:"错误调用方法' addTask':内部服务器错误[500]"。

如果它在客户端上,它会将#text的值记录到控制台,但在服务器上它甚至不会这样做。

正如我所说,我一直在学习Meteor,并将其作为研究方法。我显然遗漏了一些东西,无法解决这个问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您正在尝试从服务器代码中查看DOM元素。您需要在客户端上获取该元素,然后将其传递给方法,如果您愿意,可以将其放在/lib文件夹中以进行延迟补偿。

客户端:

Template.add_task.events({
  'submit .js-emoticon': function(event){
    event.preventDefault();
    var task = event.target.text.value;
    Meteor.call("addTask",task);
  }
});

服务器:

Meteor.methods({
  'addTask':function(task){
    check(task,String);
    Items.insert({ created: new Date(), task: task });
    console.log(task);
  }
});

当你将你的日期保存在mongo中时,你从不想要将日期转换为字符串。这使得搜索日期变得不可能。