javascript - Meteor.call 回调函数返回未定义

标签 javascript node.js mongodb meteor

我在客户端有这段代码:

var Checklist = {
            title: this.title,
            belongs_to: this.belongs_to,
            type: this.type,
            items: this.items
        };
        Meteor.call(
            'create_checklist',
            Checklist,
            function(error,result){
                console.log('error',error,'result',result);
                // if(!error) {
                //  Router.go('/checklist/'+response);
                // }
            }
        );

服务器上的这个:

create_checklist: function(Checklist) {
        Checklists.insert(
            {
                title: Checklist.title,
                belongs_to: Checklist.belongs_to,
                type: Checklist.type,
                items: Checklist.items
            }, function(error,id){
                console.log(error,id);
                if(id) {
                    return id;
                } else {
                    return error;
                }
            }
        );
    },

Meteor.call 成功地将信息传递给服务器,因为 list 已创建。我可以在服务器控制台中看到新 list 的 ID。但是,对于错误和结果,客户端只会看到 undefined

最佳答案

您不会在服务器方法中返回结果。您不能从回调中返回值。仅返回 Checklists.insert 的结果:

create_checklist: function(Checklist) {
        return Checklists.insert(
            {
                title: Checklist.title,
                belongs_to: Checklist.belongs_to,
                type: Checklist.type,
                items: Checklist.items
            }, function(error,id){
                console.log(error,id);
                if(id) {
                    return id;
                } else {
                    return error;
                }
            }
        );
    },

根据 Meteor docs , insert 方法返回插入文档的 ID。

在服务器上,如果您不提供回调,则插入 block 直到数据库确认写入,或者如果出现问题则抛出异常。

关于javascript - Meteor.call 回调函数返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29838183/

相关文章:

javascript - 如何使用 jQuery 检查 HTML 内容中的文本?

javascript - ASP.NET MVC 中的自动刷新

javascript - Django - 将变量传递给同一脚本标签内的javascript文件

windows - 并行运行多个 node-wekit 实例

javascript - Node.js 中调用 Object.create(new EventEmitter) 是什么意思

MongoDB 聚合框架在有组时非常慢

javascript - 使用 Mongoose 和/或 underscore.js 实现 Mongo 查询和响应 'GroupBy'

javascript - jqgrid内联编辑显示nbsp;而不是一列的空格

mongodb - Mongodb有内存模式吗?

node.js - Node JS - Nginx - proxy_pass 到子目录 - Koa