MEANJS : 413 (Request Entity Too Large)

13,675

You can add following to express config:

app.use(bodyParser.urlencoded({limit: '50mb'}));
app.use(bodyParser.json({limit: '50mb'}));

Basically you need to configure Express webserver to accept bigger request size. Replace 50mb with whatever maxsize you want to accept.

Hope this helps!!!

Share:
13,675
Fabii
Author by

Fabii

Application developer. Aspiring world traveler. Student of knowledge and other good things.

Updated on June 08, 2022

Comments

  • Fabii
    Fabii almost 2 years

    I am using a MEANJS stack, I upload an image using ng-flow and save the imgsrc as base64 url.

    data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARkAAACzCAYAAAC94GgrA....

    Here is my mongoose schema:

    var ServiceSchema = new  mongoose.Schema({
        name : String,
        url: String,
        description : String,
        category : String,
        imgsrc: String
    });
    

    I run into a Request Entity Too Large server error for large images.

    I could resize the image prior to upload but this still only allows me image of size 200 x 200

    $scope.resizeimageforupload = function(img){
            var canvas = document.getElementById('canvas');
    
            var MAX_WIDTH = 200; //400; too big still
            var MAX_HEIGHT = 200; //300 too big still
            var width = img.width;
            var height = img.height;
    
            if (width > height) {
              if (width > MAX_WIDTH) {
                height *= MAX_WIDTH / width;
                width = MAX_WIDTH;
              }
            } else {
              if (height > MAX_HEIGHT) {
                width *= MAX_HEIGHT / height;
                height = MAX_HEIGHT;
              }
            }
            canvas.width = width;
            canvas.height = height;
            var ctx = canvas.getContext("2d");
            ctx.drawImage(img, 0, 0, width, height);
    
            var dataURL = canvas.toDataURL("image/png");
            dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
    
            return dataURL;
        };
    

    Any ideas on a work around or alternate solution ?

    request entity too large: 413

    Error: request entity too large
        at makeError (Angular\expresstest\node_modules\body-parser\node_modules\raw-body\index.js:184:15)
        at module.exports (Angular\expresstest\node_modules\body-parser\node_modules\raw-body\index.js:40:15)
        at read (Angular\expresstest\node_modules\body-parser\lib\read.js:62:3)
        at jsonParser (Angular\expresstest\node_modules\body-parser\lib\types\json.js:87:5)
        at Layer.handle [as handle_request] (Angular\expresstest\node_modules\express\lib\router\layer.js:76:5)
        at trim_prefix (Angular\expresstest\node_modules\express\lib\router\index.js:270:13)
        at Angular\expresstest\node_modules\express\lib\router\index.js:237:9
        at Function.proto.process_params (Angular\expresstest\node_modules\express\lib\router\index.js:312:12)
        at Angular\expresstest\node_modules\express\lib\router\index.js:228:12
        at Function.match_layer (Angular\expresstest\node_modules\express\lib\router\index.js:295:3)
  • Fabii
    Fabii over 9 years
    Worked great!; not sure what this was for : app.use(methodOverride({limit: '50mb'})); but it was undefined.
  • Chris Foster
    Chris Foster over 9 years
    @aarosil: Is methodOverride not needed at all then? Could you remove it from your answer if that's the case?
  • Tony Paternite
    Tony Paternite about 9 years
    This saved my life. Thank you.
  • reaper_unique
    reaper_unique over 8 years
    This doesn't work for me. I added it but I keep getting the error that is in the OP.
  • reaper_unique
    reaper_unique over 8 years
    It seems like at some point after a customer provides his login using passport-local, raw-body is being loaded which has a limit size of 100 Kb.
  • lonelymo
    lonelymo about 8 years
    @reaper_unique this is exactly my case too. What's the soln here?
  • reaper_unique
    reaper_unique about 8 years
    Unfortunately I haven't found the cause yet but I have a bigger issue. I forgot to check with my host if they support node.js, which they don't and my client doesn't wish to move to a more expensive solution which does support node.js so I have to migrate my project asap back to .NET.
  • Arj 1411
    Arj 1411 over 7 years
    what is app.use here?