javascript - 调用 Meteor 方法导致内部服务器错误 [500]

标签 javascript meteor

我从 main.js(server) 调用我的方法然后我在 main.js(client) 上使用 Meteor.call() 然后我收到一个内部错误 [500]

这是我的文件结构

enter image description here

这是控制台错误

enter image description here

main.js(客户端):

import Tasks from '../imports/api/task.js';
import './main.html';

Template.tasks.helpers({
    tasks() {
        return Tasks.find({},{sort: {createdAt: -1}})
    }
});

Template.tasks.events({
    'submit .add-task': function(event){
        var name = event.target.name.value;
        Meteor.call('addTask', name);


        return false;
    },
    'click .delete-task': function(event){
        if(confirm('Delete Task?')){
            Meteor.call('deleteTask', this._id)
        }

    }
});

main.js(服务器):

import { Meteor } from 'meteor/meteor';
import '../imports/api/task.js';


Meteor.startup(() => {
  // code to run on server at startup
    Meteor.methods({
        addTask: function(name){
            if(!Meteor.userId()){
                throw new Meteor.Error('Access Denied');
            }
            Tasks.insert({
                name: name,
                createdAt: new Date(),
                userId: Meteor.userId()
            });
        },
        deleteTask: function(taskId){
            Tasks.remove(taskId);
        }
    });

});

最佳答案

您只需在服务器端定义您的方法。

Meteor.startup(() => {
  // code to run on server at startup
    if(Meteor.isServer){
        Meteor.methods({
            addTask: function(name){
                if(!Meteor.userId()){
                    throw new Meteor.Error('Access Denied');
                }
                Tasks.insert({
                    name: name,
                    createdAt: new Date(),
                    userId: Meteor.userId()
                });
            },
            deleteTask: function(taskId){
                Tasks.remove(taskId);
            }
        });
    }
});

关于javascript - 调用 Meteor 方法导致内部服务器错误 [500],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43864083/

相关文章:

javascript - XEP-0133 : Admin request to get all online users list

javascript - 如何在 Meteor 1.4.x 中运行为 NodeJS v6 LTS ES2015 编写的模块?

javascript - Meteor - 模型继承

javascript - SVG 元素的 Bootstrap 弹出窗口不适用于 jQuery 3.0.0

javascript - 当使用不同 Prop 渲染组件的多个实例时,关键帧动画不起作用?用于动画的宽度取决于 Prop 值

javascript - 如何在订阅时获取观察者的 "current"值

javascript - meteor 同步执行系统命令

javascript - 如何使范围偏移与多行 contenteditable div 中的 HTML 元素一起使用?

javascript - 当我尝试运行 mupx 部署时,它显示错误

meteor - 在 Meteor 中,this.error 和在 Meteor.publish 中抛出新的 Meteor.Error 有什么区别?