ত্রুটি: অনুরোধ সত্তা খুব বড়


466

আমি এক্সপ্রেসের সাথে নিম্নলিখিত ত্রুটিটি পেয়েছি:

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

আমি মিডস্ট্যাক ব্যবহার করছি। আমার এক্সপ্রেস.জেসে আমার নীচের ব্যবহারের বিবৃতি রয়েছে

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

ফিজলারের মধ্যে আমি কন্টেন্ট-দৈর্ঘ্যের শিরোনামটি দেখতে পাই: 1078702 এর মান সহ

আমি বিশ্বাস করি এটি অক্টেটে রয়েছে, এটি 1.0787 মেগাবাইট।

আমার কোনও ধারণা নেই কেন এক্সপ্রেস আমাকে জসন অ্যারে পোস্ট করতে দিচ্ছে না আমি আগে অন্য একটি এক্সপ্রেস প্রকল্পে পোস্ট করছিলাম যা গড় স্ট্যাক প্রকল্প কাঠামোটি ব্যবহার করছিল না।


5
এই প্রশ্নে যে কারও কাছে এ সম্পর্কে দ্রুত নোট - নিশ্চিত করুন যে আপনার সমস্যাটি আসলে নোড সার্ভার বা বডি পার্সার। উদাহরণস্বরূপ, আমি বডি পার্সারটি সঠিকভাবে ব্যবহার করছি তবে আমি এই ত্রুটিটি পেয়েছি কারণ আমি এনজিআইএনএক্স সিএনএফ ফাইলটিতে শরীরের সর্বাধিক আকার নির্ধারণ করার জন্য।
স্টিফেন টেট্রোল্ট

@ স্টেফেন টেট্রিয়াল্ট আমি মনে করি আপনার উত্তর হিসাবে এটি যোগ করা উচিত, অবশ্যই এটি সবার ক্ষেত্রে প্রযোজ্য হবে না, কুডোস, আমার সাথে ঠিক কী ঘটছিল was
দাদো

উত্তর:


987

সম্প্রতি আমারও একই ত্রুটি হয়েছিল এবং আমি যে সমস্ত সমাধান পেয়েছি সেগুলি কার্যকর হয়নি।

কিছু খনন করার পরে, আমি দেখতে পেলাম যে সেটিংটি 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মডিউলটি লোড করার সময় , সীমাটি 1 এমবি (1048576 বাইট) সেট করা হয়। তারপরে যখন আমি সীমাটি সেট করি, তখন console.logআবার কল করা হয় এবং এবার সীমাটি 52428800 (50 এমবি)। তবে, আমি এখনও একটি পেতে 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পৃথকভাবে রুটের সংজ্ঞাটিতে প্যারামিটারগুলি নির্দিষ্ট করার চেষ্টা করেছি , তবে ভাগ্যও নেই।

যদিও আমি স্থায়ীভাবে সেট করার কোনও সঠিক উপায় খুঁজে পাইনি, আপনি এটি মডিউলটিতে সরাসরি " প্যাচ " করতে পারেন । আপনি যদি এক্সপ্রেস ৩.৪.৪ ব্যবহার করছেন তবে এটির 46 নং লাইনে যুক্ত করুন node_modules/express/node_modules/connect/lib/middleware/json.js:

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

আপনি যদি এক্সপ্রেসের একই সংস্করণটি না চালান তবে লাইন নম্বরটি পৃথক হতে পারে। দয়া করে নোট করুন যে এটি খারাপ অনুশীলন এবং আপনি যদি নিজের মডিউল আপডেট করেন তবে এটি ওভাররাইট করা হবে ।

সুতরাং এই অস্থায়ী সমাধানটি আপাতত কাজ করে, তবে কোনও সমাধান পাওয়া মাত্রই (বা মডিউলটি ঠিক হয়ে যায়, যদি এটি কোনও মডিউল সমস্যা হয়) আপনার সেই অনুযায়ী আপনার কোডটি আপডেট করা উচিত।

এই সমস্যাটি সম্পর্কে আমি তাদের গিটহাবের একটি সমস্যা খুলেছি ।

[সম্পাদনা করুন - সমাধানটি খুঁজে পেয়েছেন]

কিছু গবেষণা এবং পরীক্ষার পরে, আমি দেখতে পেলাম যে ডিবাগ করার সময় আমি যুক্ত করেছি app.use(express.bodyParser({limit: '50mb'}));তবে পরে app.use(express.json()); । এক্সপ্রেসের পরে বিশ্বব্যাপী সীমাটি 1 এমবিতে সেট করা হত কারণ স্ক্রিপ্টটি চালানোর সময় তিনি প্রথম পার্সারটি সম্মুখীন করেছিলেন express.json()bodyParserএটি উপরের চলন্ত কৌতুক করেছে।

এটি বলেছিল যে bodyParser()পদ্ধতিটি সংযোগ 3.0 এ অবমূল্যায়ন করা হবে এবং এটি ব্যবহার করা উচিত নয়। পরিবর্তে, আপনার পার্সারগুলি স্পষ্টভাবে ঘোষণা করা উচিত, এর মতো:

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

আপনার যদি মাল্টিপার্টের প্রয়োজন হয় (ফাইল আপলোডের জন্য) এই পোস্টটি দেখুন

[দ্বিতীয় সম্পাদনা]

নোট করুন যে এক্সপ্রেস 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)। এটি কারণ পরবর্তী সংস্করণে এই বিকল্পটি প্রয়োজন হবে এবং এটি আর alচ্ছিক হবে না । আরো তথ্যের জন্য extendedবিকল্প, আপনি উল্লেখ করতে পারেন রিডমি এর body-parser

[তৃতীয় সম্পাদনা]

দেখে মনে হচ্ছে এক্সপ্রেস v4.16.0 এর পরে, আমরা এটি করার প্রাথমিক পদ্ধতিতে ফিরে যেতে পারি (টিপটির জন্য @ জিবিএমানকে ধন্যবাদ):

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

7
আমার সমস্যাটি হ'ল আমি আমার বডি পার্সারের উপরে এক্সপ্রেস.জসন () পার্সার পেয়েছিলাম ... এটি কীভাবে কাজ করে তা বোঝার পরে আমি বডি পার্সারকে অপসারণ করেছি এবং অন্যটির মতো সীমা নির্ধারণ করেছি app.use(express.json({limit:'50mb'}));। আমি আমার উত্তর সম্পাদনা করেছি এটি প্রতিফলিত করতে!
স্যামুয়েল বোলডুক

2
এক্সপ্রেস 4 এর জন্য, নির্দেশিত কোডটি "বডি-পার্সার urlencoded
অবজ্ঞাত

3
4 প্রকাশের জন্য এটি আপডেট করার জন্য আপনাকে ধন্যবাদ। আপনি জীবন রক্ষাকারী!
সোয়લ્સ

36
এটি এই উত্তরটির মতোই বিস্তৃত, সুতরাং ভবিষ্যতের রেফারেন্সের জন্য আরও একটি বিষয় রয়েছে যা আপনি যদি আপনার নোড.জেএস / এক্সপ্রেস উদাহরণের সামনে উল্টো প্রক্সি হিসাবে এনগিনেক্স ব্যবহার করছেন তবে এটি অনুশীলনেরও প্রস্তাবিত। Nginx একই 413::Request Entity is too largeব্যতিক্রম নিক্ষেপ করবে । এটি আপনার এক্সপ্রেস অ্যাপ্লিকেশনটিতে অনুরোধটি ফরোয়ার্ড করবে না। সুতরাং আমাদের client_max_body_size 50M;nginx কনফিগার সেট করতে হবে বা একটি নির্দিষ্ট সার্ভার কনফিগারেশন বা এমনকি একটি নির্দিষ্ট অবস্থান ট্যাগ কাজ করবে।
আউখন

3
এই জন্য আপনাকে সামুয়েল ধন্যবাদ! বিস্তৃত উত্তরের জন্য আমাকে মাথা ব্যাথা, চিয়ার্স এবং +1 থেকে রক্ষা করেছেন!
বাস্তিয়ানবুহরকাল

117

আমি এক্সপ্রেস 4 ব্যবহার করি।

আমার ক্ষেত্রে এই লাইনগুলি যুক্ত করার পক্ষে যথেষ্ট ছিল না:

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

ডকুমেন্টেশন বলার সাথে সাথে ত্রুটি আর উপস্থিত না হওয়ার কারণে আমি urlncoded ফাংশনটিতে প্যারামিটারলিমিট বিকল্পটি যুক্ত করার চেষ্টা করেছি।

প্যারামিটারলিমিট বিকল্পটি ইউআরএল-এনকোডড ডেটাতে অনুমোদিত পরামিতিগুলির সর্বাধিক সংখ্যক নিয়ন্ত্রণ করে। যদি কোনও অনুরোধে এই মানটির চেয়ে বেশি পরামিতি থাকে তবে ক্লায়েন্টকে একটি 413 ফেরত দেওয়া হবে। 1000 এ ডিফল্ট।

এই কোড দিয়ে চেষ্টা করুন:

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

প্যারামিটারলিমিটটি আমি আর একটি গোচা ছিল যা আমি মিস করছি, এটি উল্লেখ করার জন্য ধন্যবাদ।
কবরবার্ড

1
"প্যারামিটারলিমিট: 50000" যুক্ত করা সমস্যার সমাধান করে।
Andrien Pecson

1
এই উত্তরটি না পাওয়া পর্যন্ত আমি এ নিয়ে এতটা লড়াই করে যাচ্ছিলাম। ধন্যবাদ! # রিলিভ
স্টিফান সেলিস

আমি ঠিক এটিই খুঁজছিলাম!
অ্যাপলপি

আমি চিহ্নিত সমাধানের সাথে লড়াই করে যাচ্ছিলাম তবে এটি অনেক সাহায্য করে।
আহমেদ খান

55

যদি কেউ সমস্ত উত্তর চেষ্টা করে থাকে তবে এখনও কোনও সাফল্য না পেল এবং সাইটটি হোস্ট করতে এনজিআইএনএক্স ব্যবহার করে / লাইন / এনগিনেক্স / সাইট-উপলব্ধ এই লাইনটি যুক্ত করুন

client_max_body_size 100M; #100mb

4
এই আমার সমস্যা ছিল, ধন্যবাদ! একটি সূত্র হ'ল এনগিনেক্সের ডিফল্টটি 1MB, সুতরাং আপনি যদি সেই পরিমাণে সীমাবদ্ধ বলে মনে করেন তবে এটি সম্ভবত এনগিনেক্স। এছাড়াও, অন্য একটি সূত্র: ত্রুটিযুক্ত বস্তুতে (পাশাপাশি ) একটি সম্পত্তি এবং সম্পত্তি body-parser ফেরত দেবে । এনগিনেক্স এটি করে না। সুতরাং আপনি যদি ত্রুটিযুক্ত বস্তুতে এই বৈশিষ্ট্যগুলি দেখতে না পান তবে এটি সম্ভবত একটি এনজিঙ্ক্স সীমা। এখানে (সম্ভবত মধ্যে কনফিগ ফাইল এই nginx সেটিং পরিবর্তন কিভাবে )limitlengthstatus:413/etc/nginx/sites-available/

2
এই উত্তরের জন্য আপনাকে অনেক ধন্যবাদ আমি বিশ্বাস করি যে এই উত্তরটি উত্সাহিত হওয়া উচিত কারণ এটি গুরুত্বপূর্ণ, ব্যক্তিগতভাবে আমি
এনজিএনএক্স

কীভাবে কেবল এক্সপ্রেসে সীমা নির্ধারণ করবেন?
dlex dykyі

@ аlexdykyі বিবেক 22 থেকে উত্তর: অ্যাপ.উজ (বডি পার্সার ((সীমা: '50 এমবি'}));
আলেকজান্ডার

এই সমস্যা ছিল! ধন্যবাদ!
ভিক্টর

31

আমি মনে করি না এটি এক্সপ্রেস গ্লোবাল আকারের সীমা, তবে বিশেষত কানেক্ট.জসন মিডলওয়্যার সীমা । আপনি যখন ব্যবহার করবেন তখন এটি ডিফল্টরূপে 100 কেবিবিexpress.bodyParser() এবং কোনও limitবিকল্প সরবরাহ করেন না।

চেষ্টা করুন:

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

1
হাই - আমি নিম্নলিখিতগুলি ব্যবহার করছি: app.get ('/ এপিআই / 0.1 / লোক /', এক্সপ্রেস.বডি পার্সার ({সীমা: '100 এমবি'}), ট্র্যাকস.ল); আমি এখনও একই ত্রুটিটি পাচ্ছি ...
মাইকে জেমস

ডিফল্ট সীমাটি 100kbyte হিসাবে এখন মনে হচ্ছে github.com/expressjs/body-parser#limit

15

আমার ক্ষেত্রে .. সেটিংস parameterLimit:50000সমস্যা স্থির করে

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

এটি আমার পক্ষে কাজ করেছে। "অনুরোধ সত্তা অনেক বড়" মনে হচ্ছে বড় স্ট্রিংগুলিকে (জেএসওনের মতো) খুব উল্লেখ করা হয়। আমি ~ 20Kib তাদেরকে JSON পোস্ট করা এবং এই সমস্যা (যে বিজ্ঞপ্তি ডিফল্ট ছিল body-parserপে লোড আকার সীমা আমার জন্য ঠিক আছে)। সঙ্গে সমাধান করা হয়েছে parameterLimitশুধুমাত্র (কোন কোন সেট করতে হবে limitগুলি)।
এজেড

13

২০১,, উপরের কোনওটিই আমার পক্ষে কাজ করেনি যতক্ষণ না আমি স্পষ্টতা বডিপার্সারের জন্য 'সীমা' ছাড়াও 'টাইপ' সেট না করি, উদাহরণস্বরূপ:

  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);

হ্যাঁ, আমারও এটি করা দরকার। এবং এটি সেট আপ করা হয়েছে যাতে আপনি নিজের অ্যাপ্লিকেশন স্ক্রিপ্ট থেকে কনফিগারেশন সেটিংস ড্রাইভ করতে পারেন।
রব স্যাডলার

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'}));

কেবল প্রথম 1 টি app.use(bodyParser());সংজ্ঞায়িত হয় এবং দ্বিতীয় দুটি লাইন উপেক্ষা করা হয়েছিল।

তথ্যসূত্র : https://github.com/expressjs/body-parser/issues/176 >> দেখুন 'ডগউইলসন জুন 17, 2016 এ মন্তব্য করেছেন'


1
ধন্যবাদ! আমার একটি পুরানো অ্যাপও ছিল (বডি পার্সার.জসন ()); আমার কোড আগে এবং প্রকৃতপক্ষে, শুধুমাত্র প্রথম এক নেওয়া হয়!
নিকো


6

আমার ক্ষেত্রে সমস্যাটি ছিল এনগিনেক্স কনফিগারেশনে । এটি সমাধান করার জন্য আমাকে ফাইলটি সম্পাদনা করতে হবে: /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

ছোট্ট পুরাতন পোস্ট কিন্তু আমার একই সমস্যা ছিল

এক্সপ্রেস ৪ ব্যবহার করে + + আমার কোডটি দেখতে দেখতে এটি দুটি দিনের ব্যাপক পরীক্ষার পরে দুর্দান্ত কাজ করে।

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

কিছুটা আলাদা পদ্ধতির - পেওলডটি খুব বড়

এখনও অবধি সমস্ত সহায়ক উত্তরগুলি পে-লোড সীমা বাড়ানোর সাথে মোকাবিলা করে। তবে এটি এমনও হতে পারে যে পে-লোডটি সত্যই খুব বড় তবে কোনও কারণ নেই। যদি এটির কোনও বৈধ কারণ না থাকে তবে এটি কেন প্রথম স্থানে এত ফুলে যায় তা খতিয়ে দেখার বিষয়টি বিবেচনা করুন।

আমাদের নিজস্ব অভিজ্ঞতা

উদাহরণস্বরূপ, আমাদের ক্ষেত্রে, একটি কৌণিক অ্যাপ লোভজনকভাবে পেলোডে একটি সম্পূর্ণ অবজেক্ট পাঠিয়েছিল। যখন একটি ফুলে ও অপ্রয়োজনীয় সম্পত্তি সরানো হয়েছিল, তখন পে-লোডের আকারটি 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}))

আপনি নোড-মডিউলগুলি বডি-পার্সারে ডিফল্ট সেটিংটি পরিবর্তন করতে পারেন তারপরে লিব ফোল্ডারে, জেএসওএন এবং পাঠ্য ফাইল রয়েছে। তারপরে এখানে সীমা পরিবর্তন করুন। প্রকৃতপক্ষে, আপনি প্রদত্ত লাইন অ্যাপ্লিকেশন (বডি পার্সার.জসন ({সীমা: '10 এমবি', প্রসারিত: সত্য})) এ সীমা পরামিতি পাস না করলে এই শর্তটি পাস হয়।


1

আমিও এই সমস্যার মুখোমুখি হয়েছি, app.use(bodyParser.json())নীচের মত পুনরাবৃত্তি করে আমি একটি নির্লিপ্ত ভুল করছি :

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

অপসারণ করে app.use(bodyParser.json()), সমস্যার সমাধান করে।


1

আমার ক্ষেত্রে Content-typeঅনুরোধ শিরোনাম থেকে অপসারণ কাজ করে।


0

আমার জন্য প্রধান কৌশল

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

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

বডি পার্স.জেসন প্রথম বডি পার্স.আরল্যানকোড দ্বিতীয়


0

আপনি যদি একসাথে ব্যবহার করছেন express.json()এবং বডি পার্সার করে থাকেন তবে এক্সপ্রেসের নিজস্ব সীমা নির্ধারণের সাথে এটি ত্রুটি দেয়।

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 }));

@ টমিস্লাভ-স্টানকোভিচ ফর্ম্যাট করার জন্য ধন্যবাদ
নিকট পুলিকার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.