2014-11-04 1 views
5

Я пытаюсь передать данные POST на маршрут Iron Router извне метеор, но он не работает. Тело запроса пуст.Meteor Iron Router Как получить данные POST

Я попытался вывести тело запроса, чтобы проверить, имеются ли данные, но он просто пуст.

Router.route('/api/gatewaysusers', function() { 
     body = this.request.body; 
     console.log(this.request) 
     // this.response.write(body); 
     this.response.end("Call served"); 


}, {where: 'server'}) 

Есть идеи? Спасибо.

+0

Возможный дубликат [Как мне получить доступ к параметрам запроса в Метеор?] (Http://stackoverflow.com/questions/11799079/how-do-i-access-request-parameters-in-meteor) –

+1

@ChristianFritz это не дубликат. Код здесь полностью прекрасен, и проблема связана с «железным маршрутизатором». –

ответ

8

request.body пуст, потому что iron-router не имеет промежуточного ПО, ответственного за извлечение данных, закодированных в URL. Это BUG, который, мы надеемся, будет разрешен в более поздних версиях. На данный момент вы можете просто добавить:

Router.onBeforeAction(Iron.Router.bodyParser.urlencoded({ 
    extended: false 
})); 

где-то на вашем сервере, и он должен работать нормально. Посмотрите here для более подробной информации.

+0

Это работает, спасибо. Теперь я могу получить тело, используя this.request.body. – DanteDiaze

+2

Кажется, что исправлено, кстати, 'this.request.body' теперь имеет все данные, ожидаемые без этого дополнительного вызова. – romaroma

+0

@romaroma Знаете ли вы, в какой версии IR она была решена? –