为Meteor配置Restivus POST方法

时间:2015-06-01 19:34:08

标签: rest http curl meteor routing

我有以下Restivus配置:

if(Meteor.isServer){

    Restivus.configure({
    });

    //Allow Restivus to manage Reports
    Restivus.addCollection('reports');

    Restivus.addRoute('newReport/:message', {}, {

        // POST
        post: {
            action: function(){

                var response = null;
                var message = this.urlParams.message;

                if(message){
                    console.log("Message received: " + message);
                    return {status: "success", data: message};
                } else {
                    console.log("Message empty...");
                    return {status: "fail", message: "Post not found"};
                }

                //Response to caller
                return;
            }
        }
    })

}

根据Restivus的解释,当我向http://localhost:3000/api/newReport/拨打GET电话时,我应该得到一个" Get All"来自服务器的结果,在调用者身上。

但是,如果我在命令行上使用curl -X GET http://localhost:3000/api/newReport/,我似乎在api / NewReport /获取网站的HTML代码(除了标题和空体之外是空的)

知道这一点,我知道我的错误是在Restivus Route配置中,但我无法确定原因。

预期的行为是,当我从Ruby脚本发出POST时,我应该收到一条返回的消息(Ok或Fail),在我的Meteor控制台中,我应该看到"收到消息"或"发布未找到" (两个占位符)。

补充问题,有没有办法在我们添加集合时禁用Restivus创建的默认GET方法?

1 个答案:

答案 0 :(得分:2)

您必须在JavaScript部分中创建一个变量,并在Restivus.addCollection()调用中使用它。

Reports = Mongo.Collection('reports')

if(Meteor.isServer){

    Restivus.configure({
    });

    //Allow Restivus to manage Reports
    Restivus.addCollection(Reports);
...