如何在Meteor restivus中获得原始尸体?

如何在Meteor restivus中获得原始尸体?,meteor,http-post,asynccallback,restivus,Meteor,Http Post,Asynccallback,Restivus,我怎样才能在《流星》中获得原始尸体? 尝试了一些东西,但不起作用。 这是代码 if(Meteor.isServer) { var Api = new Restivus({ useDefaultAuth: true }); Api.addRoute('test', {authRequired: false}, { post: { action: function() { var res

我怎样才能在《流星》中获得原始尸体? 尝试了一些东西,但不起作用。 这是代码

if(Meteor.isServer) {
    var Api = new Restivus({
        useDefaultAuth: true
    });

    Api.addRoute('test', {authRequired: false}, {
        post: {
            action: function() {
                var response;
                var readable = this.request;
                var rawBody = "";
                readable.on('data', function(chunk) {
                    rawBody += chunk;
                });
                readable.on('end', Meteor.bindEnvironment(function() {
                    //dosometing and insert into Collection
                    //make response data
                }));
                return response;
            }
        }
    });
}
它是继续返回响应,然后
可读。on('end'…)
所以,返回null是错误的。 如果我将返回响应移动到('end'…)上的
readable.on中,也会出现相同的错误。
我想如果你可以等到
可读之后再返回。在('end')上,
完成后,这将是一项工作,但我不知道如何完成。

你可以使用的
Future
等待
直到
可读。在('end')上,…
被调用

if(Meteor.isServer) {
    var Future = Npm.require('fibers/future');
    var Api = new Restivus({
        useDefaultAuth: true
    });

    Api.addRoute('test', {authRequired: false}, {
        post: {
            action: function() {
                var response;
                var readable = this.request;
                var rawBody = "";
                var future = new Future();

                readable.on('data', function(chunk) {
                    rawBody += chunk;
                });

                readable.on('end', Meteor.bindEnvironment(function() {
                    //dosometing and insert into Collection
                    //make response data
                    future.return(response); //response is what you want to return
                    // you can also throw error using future.throw(err);
                }));

                return future.wait();
            }
        }
    });
}
您可以使用's
Future
等待
直到
可读。调用on('end',…)

if(Meteor.isServer) {
    var Future = Npm.require('fibers/future');
    var Api = new Restivus({
        useDefaultAuth: true
    });

    Api.addRoute('test', {authRequired: false}, {
        post: {
            action: function() {
                var response;
                var readable = this.request;
                var rawBody = "";
                var future = new Future();

                readable.on('data', function(chunk) {
                    rawBody += chunk;
                });

                readable.on('end', Meteor.bindEnvironment(function() {
                    //dosometing and insert into Collection
                    //make response data
                    future.return(response); //response is what you want to return
                    // you can also throw error using future.throw(err);
                }));

                return future.wait();
            }
        }
    });
}