如何在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();
}
}
});
}
您可以使用'sFuture
来等待
直到可读。调用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();
}
}
});
}