首页 文章

流星方法给出错误

提问于
浏览
0

我是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 回答

  • 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中时,你永远不想将你的日期转换为字符串 . 这使得搜索日期变得不可能 .

相关问题