ข้อผิดพลาด: คำขอเอนทิตีมีขนาดใหญ่เกินไป


471

ฉันได้รับข้อผิดพลาดต่อไปนี้กับ express:

Error: request entity too large
    at module.exports (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/node_modules/raw-body/index.js:16:15)
    at json (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/json.js:60:5)
    at Object.bodyParser [as handle] (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:53:5)
    at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:193:15)
    at Object.cookieParser [as handle] (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js:60:5)
    at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:193:15)
    at Object.logger (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/logger.js:158:5)
    at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:193:15)
    at Object.staticMiddleware [as handle] (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/middleware/static.js:55:61)
    at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:193:15)
TypeError: /Users/michaeljames/Documents/Projects/Proj/mean/app/views/includes/foot.jade:31
    29| script(type="text/javascript", src="/js/socketio/connect.js")
    30| 
  > 31| if (req.host='localhost')
    32|     //Livereload script rendered 
    33|     script(type='text/javascript', src='http://localhost:35729/livereload.js')  
    34| 

Cannot set property 'host' of undefined
    at eval (eval at <anonymous> (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:152:8), <anonymous>:273:15)
    at /Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:153:35
    at Object.exports.render (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:197:10)
    at Object.exports.renderFile (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:233:18)
    at View.exports.renderFile [as engine] (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/jade/lib/jade.js:218:21)
    at View.render (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/lib/view.js:76:8)
    at Function.app.render (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/lib/application.js:504:10)
    at ServerResponse.res.render (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/lib/response.js:801:7)
    at Object.handle (/Users/michaeljames/Documents/Projects/Proj/mean/config/express.js:82:29)
    at next (/Users/michaeljames/Documents/Projects/Proj/mean/node_modules/express/node_modules/connect/lib/proto.js:188:17)

POST /api/0.1/people 500 618ms

ฉันกำลังใช้ค่าเฉลี่ย ฉันมีคำสั่งการใช้งานต่อไปนี้ใน express.js ของฉัน

//Set Request Size Limit
app.use(express.limit(100000000));

ภายในพู้ทำเล่นฉันสามารถดูส่วนหัวความยาวเนื้อหาที่มีค่า: 1078702

ฉันเชื่อว่านี่เป็นออคเต็ตนี่คือ 1.0787 เมกะไบต์

ฉันไม่รู้ว่าทำไม express ไม่ให้ฉันโพสต์อาร์เรย์ json ที่ฉันโพสต์ก่อนหน้านี้ในโครงการด่วนอื่นที่ไม่ได้ใช้โครงสร้างโครงการ stack เฉลี่ย


5
ข้อความสั้น ๆ เกี่ยวกับเรื่องนี้กับทุกคนที่มาถึงคำถามนี้ - ตรวจสอบให้แน่ใจว่าปัญหาของคุณคือเซิร์ฟเวอร์โหนดหรือตัวแยกวิเคราะห์เนื้อหา ตัวอย่างเช่นฉันใช้ body parser อย่างถูกต้อง แต่ฉันพบข้อผิดพลาดนี้เพราะฉันต้องการตั้งค่าขนาดร่างกายสูงสุดในไฟล์ NGINX conf
Stephen Tetreault

@StephenTetreault ฉันคิดว่าคุณควรจะเพิ่มคำตอบนั้นในขณะที่แน่นอนว่ามันจะไม่มีผลกับทุกคนมันเป็นสิ่งที่เกิดขึ้นกับฉันอย่างแน่นอน
Dado

คำตอบ:


991

ฉันมีข้อผิดพลาดเดียวกันเมื่อเร็ว ๆ นี้และวิธีแก้ปัญหาทั้งหมดที่ฉันพบใช้ไม่ได้

หลังจากการขุดผมพบว่าการตั้งค่าapp.use(express.bodyParser({limit: '50mb'}));ได้ตั้งค่าไว้อย่างถูกต้อง

เมื่อเพิ่มconsole.log('Limit file size: '+limit);ในnode_modules/express/node_modules/connect/lib/middleware/json.js:46และรีสตาร์ทโหนดฉันได้รับผลลัพธ์นี้ในคอนโซล:

Limit file size: 1048576
connect.multipart() will be removed in connect 3.0
visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
connect.limit() will be removed in connect 3.0
Limit file size: 52428800
Express server listening on port 3002

เราจะเห็นได้ว่าในตอนแรกเมื่อโหลดconnectโมดูลขีด จำกัด ถูกตั้งค่าเป็น 1mb (1048576 ไบต์) จากนั้นเมื่อฉันตั้งค่าขีด จำกัดconsole.logจะถูกเรียกอีกครั้งและเวลานี้ขีด จำกัด คือ 52428800 (50mb) 413 Request entity too largeแต่ผมยังคงได้รับ

แล้วฉันจะเพิ่มconsole.log('Limit file size: '+limit);ใน node_modules/express/node_modules/connect/node_modules/raw-body/index.js:10และเห็นสายอื่นในคอนโซลเมื่อโทรเส้นทางที่มีการร้องขอใหญ่ (ก่อนที่จะส่งออกข้อผิดพลาด):

Limit file size: 1048576

ซึ่งหมายความว่าอย่างใดที่หนึ่งconnectรีเซ็ตพารามิเตอร์ จำกัด และละเว้นสิ่งที่เราระบุ ฉันพยายามระบุbodyParserพารามิเตอร์ในคำนิยามเส้นทางแต่ละรายการ แต่ก็ไม่มีโชคเช่นกัน

ในขณะที่ฉันไม่พบวิธีที่เหมาะสมในการตั้งค่าอย่างถาวรคุณสามารถ " แก้ไข " ในโมดูลโดยตรง หากคุณใช้ Express 3.4.4 ให้เพิ่มที่บรรทัด 46 ของnode_modules/express/node_modules/connect/lib/middleware/json.js:

limit = 52428800; // for 50mb, this corresponds to the size in bytes

หมายเลขบรรทัดอาจแตกต่างกันหากคุณไม่ได้ใช้ Express เวอร์ชันเดียวกัน โปรดทราบว่านี่เป็นแนวปฏิบัติที่ไม่ดีและจะถูกเขียนทับหากคุณอัปเดตโมดูลของคุณ

ดังนั้นโซลูชันชั่วคราวนี้ใช้งานได้ในตอนนี้ แต่ทันทีที่พบวิธีแก้ไขปัญหา (หรือโมดูลได้รับการแก้ไขในกรณีที่เป็นปัญหาโมดูล) คุณควรอัปเดตโค้ดของคุณตามลำดับ

ฉันได้เปิดปัญหาที่ GitHubเกี่ยวกับปัญหานี้

[แก้ไข - พบวิธีแก้ปัญหา]

หลังจากที่มีการวิจัยและการทดสอบพบว่าเมื่อแก้จุดบกพร่องฉันเพิ่มapp.use(express.bodyParser({limit: '50mb'}));แต่หลังจากที่ app.use(express.json());เอ็กซ์เพรสแล้วจะตั้งขีด จำกัด ทั่วโลกถึง 1MB express.json()เพราะตัวแยกวิเคราะห์ครั้งแรกที่เขาพบเมื่อใช้สคริปต์เป็น การย้ายไปทางbodyParserด้านบนนั้นเป็นการหลอกลวง

ที่กล่าวว่าbodyParser()วิธีการจะเลิกในการเชื่อมต่อ 3.0 และไม่ควรใช้ คุณควรประกาศตัวแยกวิเคราะห์อย่างชัดเจนเช่น:

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

ในกรณีที่คุณต้องการหลายส่วน (สำหรับการอัปโหลดไฟล์) ดูโพสต์นี้

[แก้ไขที่สอง]

โปรดทราบว่าใน Express 4 แทนที่จะเป็นexpress.json()และexpress.urlencoded()คุณต้องมีโมดูลตัวแยกวิเคราะห์และใช้json()และurlencoded()วิธีการเช่น:

var bodyParser = require('body-parser');
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));

หากextendedไม่ได้กำหนดตัวเลือกไว้อย่างชัดเจนbodyParser.urlencoded()จะมีคำเตือน ( body-parser deprecated undefined extended: provide extended option) นี่เป็นเพราะตัวเลือกนี้จะต้องใช้ในรุ่นถัดไปและจะไม่เป็นตัวเลือกอีกต่อไป สำหรับข้อมูลเพิ่มเติมเกี่ยวกับextendedตัวเลือกที่คุณสามารถดูที่READMEbody-parserของ

[แก้ไขที่สาม]

ดูเหมือนว่าใน Express v4.16.0 เป็นต้นไปเราสามารถกลับไปที่วิธีเริ่มต้นในการทำสิ่งนี้ (ขอบคุณ @GBMan สำหรับคำแนะนำ):

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

7
ปัญหาของฉันคือการที่ฉันมี express.json () แยกวิเคราะห์ข้างต้น bodyParser ของฉัน ... หลังจากเข้าใจวิธีการทำงานทั้งหมดฉันออก bodyParser และชุดเดขีด จำกัด ในอื่น ๆ app.use(express.json({limit:'50mb'}));เช่น ฉันแก้ไขคำตอบเพื่อสะท้อนสิ่งนี้!
ซามูเอล Bolduc

2
สำหรับ express 4 รหัสที่ระบุพ่น "ตัวแยกวิเคราะห์ร่างกายเลิกใช้ไม่ได้กำหนดเพิ่มเติม: ให้ตัวเลือกเพิ่มเติม" ในการurlencodedโทร
ไมค์ 'Pomax' Kamermans

3
ขอบคุณสำหรับการอัปเดตนี้สำหรับ express 4 คุณเป็นผู้ช่วยชีวิต!
Swills

36
นี่จะครอบคลุมอย่างที่คำตอบนี้ได้รับดังนั้นจึงมีอีกหนึ่งจุดสำหรับการอ้างอิงในอนาคตที่ฉันพบหากคุณใช้ nginx เป็น reverse proxy ที่อยู่ด้านหน้าของ node.js / express instance ซึ่งเป็นแนวทางปฏิบัติที่แนะนำเช่นกัน Nginx จะโยน413::Request Entity is too largeข้อยกเว้นเดียวกัน มันจะไม่ส่งต่อคำขอไปยังแอปด่วนของคุณ ดังนั้นเราจำเป็นต้องตั้งค่าclient_max_body_size 50M;ในการกำหนดค่าnginx หรือการกำหนดค่าเซิร์ฟเวอร์ที่เฉพาะเจาะจงหรือแม้กระทั่งแท็กสถานที่เฉพาะจะทำงาน
Aukhan

3
ขอบคุณ samuel สำหรับสิ่งนี้! ช่วยฉันจากโลกที่ปวดหัวไชโยและ +1 สำหรับคำตอบที่ครอบคลุม!
BastianBuhrkall

117

ฉันใช้ Express 4

ในกรณีของฉันมันไม่เพียงพอที่จะเพิ่มบรรทัดเหล่านี้:

var bodyParser = require('body-parser');
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));

ฉันพยายามเพิ่มตัวเลือก parameterLimit บนฟังก์ชัน urlencoded เนื่องจากเอกสารระบุว่าและข้อผิดพลาดจะไม่ปรากฏอีกต่อไป

ตัวเลือก parameterLimit ควบคุมจำนวนสูงสุดของพารามิเตอร์ที่ได้รับอนุญาตในข้อมูลที่เข้ารหัส URL หากคำขอมีพารามิเตอร์มากกว่าค่านี้ 413 จะถูกส่งกลับไปยังลูกค้า ค่าเริ่มต้นเป็น 1,000

ลองด้วยรหัสนี้:

var bodyParser = require('body-parser');
app.use(bodyParser.json({limit: "50mb"}));
app.use(bodyParser.urlencoded({limit: "50mb", extended: true, parameterLimit:50000}));

พารามิเตอร์ Limit เป็นอีก gotcha ฉันหายไปขอบคุณที่ชี้ให้เห็น
crowebird

1
การเพิ่ม "parameterLimit: 50000" แก้ปัญหาได้
Andrien Pecson

1
ฉันดิ้นรนอย่างหนักกับเรื่องนี้จนกระทั่งฉันพบคำตอบนี้ ขอบคุณ! #Relieve
Stephan Celis

นี่คือสิ่งที่ฉันกำลังมองหา!
ApplePie

ฉันกำลังดิ้นรนกับโซลูชันที่ทำเครื่องหมายไว้ แต่สิ่งนี้ช่วยได้มาก
อาเหม็ดข่าน

55

หากใครบางคนลองคำตอบทั้งหมด แต่ยังไม่ประสบความสำเร็จและใช้ NGINX เพื่อโฮสต์ไซต์เพิ่มบรรทัดนี้ใน / etc / nginx / sites-available

client_max_body_size 100M; #100mb

4
นี่คือปัญหาของฉันขอบคุณ! เงื่อนงำหนึ่งคือค่าเริ่มต้นของ nginx คือ 1MB ดังนั้นหากคุณดูเหมือนจะถูก จำกัด ตามจำนวนเงินนั้นก็อาจเป็น nginx นอกจากนี้ยังมีเงื่อนงำอื่น: body-parser จะกลับlimitคุณสมบัติและlengthคุณสมบัติในวัตถุข้อผิดพลาด (พร้อมด้วยstatus:413) Nginx ไม่ได้ทำเช่นนี้ ดังนั้นหากคุณไม่เห็นคุณสมบัติเหล่านั้นในวัตถุข้อผิดพลาดอาจเป็นข้อ จำกัด ของ nginx ต่อไปนี้เป็นวิธีเปลี่ยนการตั้งค่า nginx (ไฟล์กำหนดค่าที่น่าจะเป็นไปได้/etc/nginx/sites-available/)

2
ขอบคุณมากสำหรับคำตอบนี้ฉันเชื่อว่าคำตอบนี้ควร upvoted เพราะเป็นสิ่งสำคัญโดยส่วนตัวฉันลืมเกี่ยวกับการกำหนดค่า nginx ... อีกครั้งใหญ่ขอบคุณ
Fadi Abo Msalam

วิธีการตั้งค่า จำกัด เฉพาะในด่วน?
dykyіаlex

@ аlexdykyіคำตอบจาก Vivek22: app.use (bodyParser ({จำกัด : '50mb'}));
Alexander

นี่เป็นปัญหา! ขอบคุณ!
Victor

31

ผมไม่คิดว่านี่คือการ จำกัด ขนาดด่วนทั่วโลก แต่เฉพาะวงเงิน connect.json มิดเดิลแวร์ นี่คือ 100kb โดยค่าเริ่มต้นเมื่อคุณใช้express.bodyParser()และไม่มีlimitตัวเลือก

ลอง:

app.post('/api/0.1/people', express.bodyParser({limit: '5mb'}), yourHandler);

1
สวัสดี - ฉันใช้สิ่งต่อไปนี้: app.get ('/ api / 0.1 / people /', express.bodyParser ({จำกัด : '100mb'}), tracks.all); ฉันยังคงได้รับข้อผิดพลาดเดียวกัน ...
เจมส์ไมค์

ขีด จำกัด เริ่มต้นคือ 100kbyte ตามที่ดูเหมือนว่าตอนนี้ github.com/expressjs/body-parser#limit
Qiong Wu

15

ในกรณีของฉัน .. การตั้งค่าparameterLimit:50000แก้ไขปัญหา

app.use( bodyParser.json({limit: '50mb'}) );
app.use(bodyParser.urlencoded({
  limit: '50mb',
  extended: true,
  parameterLimit:50000
}));

สิ่งนี้ใช้ได้สำหรับฉัน "เอนทิตีที่ร้องขอใหญ่เกินไป" ดูเหมือนจะอ้างถึงสตริงขนาดใหญ่ (เช่น JSON) เช่นกัน ฉันกำลังโพสต์ ~ 20Kib JSON และมีปัญหานี้ (โปรดสังเกตว่าขีด จำกัดขนาดของเพย์body-parserโหลดเริ่มต้นนั้นใช้ได้สำหรับฉัน) แก้ไขได้ด้วยเท่านั้น (ไม่จำเป็นต้องตั้งค่าใด ๆ) parameterLimitlimit
aesede

13

2559 ไม่มีข้อใดถูกใช้งานได้สำหรับฉันจนกว่าฉันจะตั้งค่า 'ชนิด' นอกเหนือจาก 'ขีด จำกัด ' สำหรับ bodyparser ตัวอย่าง:

  var app = express();
  var jsonParser       = bodyParser.json({limit:1024*1024*20, type:'application/json'});
  var urlencodedParser = bodyParser.urlencoded({ extended:true,limit:1024*1024*20,type:'application/x-www-form-urlencoded' })

  app.use(jsonParser);
  app.use(urlencodedParser);

ใช่นี่คือสิ่งที่ฉันต้องทำด้วย และได้รับการตั้งค่าเพื่อให้คุณสามารถผลักดันการตั้งค่าจากสคริปต์แอปของคุณ
Robb Sadler

3
หมายถึงapplication/x-www-form-urlencoded(แทนที่จะapplication/x-www-form-urlencoding) ใช่ไหม
ลูกระเบิดมือ

12

ต่อไปนี้ใช้งานได้สำหรับฉัน ... แค่ใช้

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

แค่นั้นแหละ.

พยายามทั้งหมดข้างต้นและไม่มีใครทำงาน พบว่าแม้ว่าเราจะใช้ดังต่อไปนี้

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

เฉพาะapp.use(bodyParser());บรรทัดแรกเท่านั้นที่ถูกกำหนดและสองบรรทัดหลังถูกละเว้น

อ้างอิง: https://github.com/expressjs/body-parser/issues/176 >> ดู 'dougwilson แสดงความคิดเห็นเมื่อ 17 มิถุนายน 2016'


1
ขอบคุณ! ฉันยังมี app.use เก่า (bodyParser.json ()); ในรหัสของฉันมาก่อนและแน่นอนเพียงคนแรกที่ได้รับ!
Nico


6

ในกรณีของปัญหาที่เกิดขึ้นเกี่ยวกับการกำหนดค่า Nginx เพื่อแก้มันฉันต้องแก้ไขไฟล์: /etc/nginx/nginx.confและเพิ่มบรรทัดนี้ในเซิร์ฟเวอร์บล็อก:

client_max_body_size 5M;

รีสตาร์ท Nginx และปัญหามันหายไป

sudo systemctl restart nginx

5

ฉันใช้วิธีอื่นในการแก้ปัญหานี้ด้วยการพึ่งพาตัวเอง

ตัวอย่าง:

multer = require('multer');

var uploading = multer({
  limits: {fileSize: 1000000, files:1},
});

exports.uploadpictureone = function(req, res) {
  cloudinary.uploader.upload(req.body.url, function(result) {
    res.send(result);
  });
};

module.exports = function(app) {
    app.route('/api/upload', uploading).all(uploadPolicy.isAllowed)
        .post(upload.uploadpictureone);
};

5

โพสต์เก่าเล็ก ๆ น้อย ๆ แต่ฉันมีปัญหาเดียวกัน

การใช้ express 4 + รหัสของฉันมีลักษณะเช่นนี้และใช้งานได้ดีหลังจากการทดสอบอย่างกว้างขวางสองวัน

var url         = require('url'),
    homePath    = __dirname + '/../',
    apiV1       = require(homePath + 'api/v1/start'),
    bodyParser  = require('body-parser').json({limit:'100mb'});

module.exports = function(app){
    app.get('/', function (req, res) {
        res.render( homePath + 'public/template/index');
    });

    app.get('/api/v1/', function (req, res) {
        var query = url.parse(req.url).query;
        if ( !query ) {
            res.redirect('/');
        }
        apiV1( 'GET', query, function (response) {
            res.json(response);
        });
    });

    app.get('*', function (req,res) {
        res.redirect('/');
    });

    app.post('/api/v1/', bodyParser, function (req, res) {
        if ( !req.body ) {
            res.json({
                status: 'error',
                response: 'No data to parse'
            });
        }
        apiV1( 'POST', req.body, function (response) {
            res.json(response);
        });
    });
};

4

แนวทางที่แตกต่างออกไปเล็กน้อย - น้ำหนักบรรทุกใหญ่เกินไป

คำตอบที่เป็นประโยชน์ทั้งหมดจะจัดการกับการเพิ่มขีด จำกัด ของน้ำหนักบรรทุก แต่อาจเป็นกรณีที่ขนาดบรรทุกใหญ่เกินไป แต่ไม่มีเหตุผลที่ดี หากไม่มีเหตุผลที่ถูกต้องลองพิจารณาดูว่าทำไมมันถึงพองโตตั้งแต่แรก

ประสบการณ์ของเราเอง

ตัวอย่างเช่นในกรณีของเราแอปพลิเคชัน Angular ถูกส่งวัตถุทั้งหมดในเพย์โหลดอย่างตะกละตะกลาม เมื่อหนึ่งป่องและซ้ำซ้อนคุณสมบัติถูกลบออกขนาดบรรจุก็ลดลงโดยปัจจัยของ 100 สิ่งนี้ปรับปรุงประสิทธิภาพอย่างมากและแก้ไขข้อผิดพลาด 413


4

หลังจากฉันพยายามหลายครั้งฉันก็หาทางออก

ฉันได้แสดงความคิดเห็นบรรทัดนี้

app.use(bodyParser.json());

และฉันใส่

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

จากนั้นก็ใช้งานได้



2

การใช้งานที่ดีกว่าคุณสามารถระบุขีด จำกัด ของขนาดไฟล์ตามที่แสดงในบรรทัดที่กำหนด:

app.use(bodyParser.json({limit: '10mb', extended: true}))
app.use(bodyParser.urlencoded({limit: '10mb', extended: true}))

คุณยังสามารถเปลี่ยนการตั้งค่าเริ่มต้นใน node-modules body-parser จากนั้นในโฟลเดอร์ lib มี JSON และไฟล์ข้อความ จากนั้นเปลี่ยนขีด จำกัด ที่นี่ ที่จริงแล้วเงื่อนไขนี้จะผ่านหากคุณไม่ผ่านพารามิเตอร์ จำกัด ใน app.use บรรทัดที่ระบุ (bodyParser.json ({จำกัด : '10mb', ขยาย: จริง}))


1

ฉันก็ประสบกับปัญหานั้นเช่นกันฉันทำผิดพลาดโดยทำสิ่งapp.use(bodyParser.json())ต่อไปนี้ซ้ำ:

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

โดยการลบapp.use(bodyParser.json())แก้ไขปัญหา



0

สำหรับฉันเคล็ดลับหลักคือ

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

app.use(bodyParser.urlencoded({
  limit: '20mb',
  parameterLimit: 100000,
  extended: true 
}));

bodyParse.json ตัวแรก bodyParse.urlencoded วินาที


0

หากคุณใช้express.json()และbodyParserร่วมกันมันจะให้ข้อผิดพลาดขณะที่ express กำหนดขีด จำกัด ของตัวเอง

app.use(express.json());
app.use(express.urlencoded({ extended: false }));

ลบโค้ดด้านบนและเพิ่มโค้ดด้านล่าง

app.use(bodyParser.json({ limit: "200mb" }));
app.use(bodyParser.urlencoded({ limit: "200mb",  extended: true, parameterLimit: 1000000 }));

ขอบคุณสำหรับการจัดรูปแบบ @ tomislav-stankovic
NIKIT PULEKAR
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.