Как я могу получить POST сырое тело в Meteor Restivus?
Как я могу получить POST сырое тело в Meteor Restivus? что-то пробовал, но не работает. это код
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;
}
}
});
}
это продолжить ответный ответ, а затем readable.on('end'.. )
Итак, это ошибка, возвращаемая ноль. если я переместил ответ в readable.on('end'...)
Тоже та же ошибка. я думаю, если можно подождать POST вернуться до readable.on('end'..)
закончено, это будет работа, но я не знаю как.
1 ответ
Вы можете использовать ноды-волокнаFuture
в wait
до тех пор readable.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();
}
}
});
}