quape
January 6, 2016, 2:00pm
1
I’m sending a json-ecoded POST request from outside to meteor which shall be captured by iron router like this:
Router.map(function () {
this.route('api', {
path: '/api',
where: 'server',
action: function() {
var o = this.request.body
...
This works when the request is small. When it is about 1 MB, I get a Error: Request Entity Too Large. So I used:
Router.configureBodyParsers = function() {
Router.onBeforeAction(Iron.Router.bodyParser.urlencoded({
limit: '500mb'
}))
}
to increase the request size limit. But then, this.request.body
is empty. What to do?
quape
January 6, 2016, 2:16pm
2
solved
Router.onBeforeAction(Iron.Router.bodyParser.json({limit: '50mb'}));
did the trick
1 Like
Hi,
Can you be a bit more specific on what you do because I have the exact same problem when it is about 1MB ?
Router.configureBodyParsers = function() {
Router.onBeforeAction(Iron.Router.bodyParser.json({
limit: '500mb'
}))
}
this doesn’t work for me
Thanks a lot
quape
May 9, 2016, 10:39am
4
I just did
Router.onBeforeAction(Iron.Router.bodyParser.json({limit: '50mb'}));
in server context, nothing around it, no function like you wrote.
But I also found out that nginx had another limit, and because we use nginx as a proxy around meteor, I added this to nginx.conf as well:
client_max_body_size 500M;
Thank you for your reply !
I use Nginx too. So I did what you’ve shown.
Unfortunately it is not working for me …
I put Router.onBeforeAction...
in Meteor.startup
and set client_max_body_size 500M;
in Nginx.
I don’t know what to do next
quape
May 9, 2016, 11:23am
6
Hmm. Restartet nginx? Try not to use Meteor.startup() for this one, I remember I had some weird problems once. Is your request a POST?
So anywhere in server side but not in the startup function ? Yes my request is a POST.
quape
May 9, 2016, 12:30pm
8
Yes anywhere there on the server side, just a try to make sure there is nothing else interfering.
So I tried locally without nginx as a proxy and still it’s not working. So I suppose IRON Router is the problem…
what’s your version of iron-router ?
quape
May 9, 2016, 12:53pm
11
iron router 1.0.12
meteor version is 1.3-modules-beta.8
ok so I solved it I just write :
Router.onBeforeAction(Iron.Router.bodyParser.urlencoded({
extended : true,
limit: '200mb'
}));
not in startup but just before all my routes definition…
Well I don’t understand why is it working now but hey !
Thank you so much @quape for the time you take for helping me
Cheers
quape
May 9, 2016, 1:04pm
13
Oh yes, I forgot to mention that my POST only contained JSON data. So obviously there is a urlencoded() function as well for other form data.
Great that it works now!
my post is also only Json data lol