এক্সপ্রেস ত্রুটিটিকে `বডি-পার্সার অবচয়হিত অপরিজ্ঞাত প্রসারিত হিসাবে ছুঁড়ে দেয়`


127

আমার নোড অ্যাপে আমি এক্সপ্রেস ব্যবহার করছি। সব ঠিকঠাক কাজ করে তবে আমি এর মধ্যে ত্রুটি পাচ্ছি cmd। আমি সমস্ত আপডেট মডিউল ব্যবহার করি ...

আমার কোড:

var express = require('express');
var bodyParser = require('body-parser');
var jade = require('jade');
var app = express();
app.set('view engine', 'jade');
app.set('views', __dirname + '/views');
app.use(express.static(__dirname + '/public'));


app.use(bodyParser.json()); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded()); // to support URL-encoded bodies


app.get('/',function(req,res){
    res.render('index.jade');
});

app.get('/login',function(req,res){
    res.render('index.jade');
});

app.post('/login',function(req,res){
    console.log(req.body);
});

app.get('/signup',function(req,res){
    res.render('signup.jade');
});

var env = process.env.PORT || 3000;


app.listen(env, function(req, res){
    console.log('i am working!');
});

ত্রুটি:

D:\myLogin>node app
body-parser deprecated undefined extended: provide extended option app.js:11:20 //why i am getting this?
i am working!
{ username: 'jbarif@gmail.com', password: 'pass' } // i am getting response

দয়া করে এই সমস্যাটি বুঝতে কোনও আমাকে সহায়তা করতে পারে?


@ রামপ্রাথসেলভম - হ্যাঁ, এটা ছিল !!
— 3gwebtrain

@ রামপ্রাথসেলভাম - আপনার কোড, মডিউল বা সংহতকরণের সংস্করণে কিছু ভুল হতে পারে, দয়া করে পরীক্ষা করুন
— জিওব্রটেন

সবচেয়ে খারাপ ত্রুটি বার্তার জন্য আমরা কোথায় ভোট দেব? বিশেষত এটি হওয়ার সম্ভাবনা খুব বেশি বিবেচনা করে, বার্তাটি কেবল এলোমেলো শব্দের ব্যাগের মতো দেখাচ্ছে।
— স্পিফটার

উত্তর:


263

আপনি স্পষ্টভাবে সেট করতে extendedজন্য bodyParser.urlencoded()যেহেতু ডিফল্ট মান পরবর্তী প্রধান সংস্করণ পরিবর্তন যাচ্ছে এর body-parser। উদাহরণ:

app.use(bodyParser.urlencoded({ extended: true }));

express4.16.0 থেকে , আপনি এটি করতেও পারেন:

app.use(express.urlencoded({ extended: true }))

11
এটি কি করে?
— সমরথ আগরওয়াল

5
@SamarthAgarwal মতে রিডমি , এটি ব্যবহার করে qsশরীরের যা সিনট্যাক্স মত একটি নেস্টেড অ্যারের জন্য করতে পারবেন বিশ্লেষণ করতে মডিউল যেমন বিশ্লেষণ হতে test[foo][bar]=baz(যা হয়ে {'test': {'foo': {'bar': 'baz'}}})
— বেইলি পার্কার

35

দৃষ্টি আকর্ষণ: সঙ্গে মিডলওয়্যার পদ্ধতি অধীনে ফিরে যোগ করা হয়েছিল এবংexpress version => 4.16.0body-parserexpress.urlencoded()express.json()

যা হিসাবে ব্যবহার করা যেতে পারে:

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

14

ত্রুটিটি বলেছে যে আপনাকে বডি-পার্সারের মতো বর্ধিত বিকল্প সরবরাহ করতে হবে:

app.use(bodyParser.urlencoded({ extended: false }))

0

থেকে হিসাবে এক্সপ্রেস সংস্করণ 4.16.0, আপনি মধ্যে পাস করবে বলে আশা করা করছি বর্ধিত ভিতরে সম্পত্তি (bodyParser.urlencoded)

//  parse JSON-encoded bodies and URL-encoded bodies
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

নমুনার জন্য এনপিএম.জেএস ডকুমেন্টেশন পৃষ্ঠাটি দেখুন: https://www.npmjs.com/package/body-parser#expressconnect-top-level-generic


0

আপনি যদি এখানে থাকেন, মে -2020 এর পরে এর অর্থ আপনি অবশ্যই সংস্করণ v13.12.0 এর নোড ব্যবহার করছেন .. সুতরাং, অ্যাপ্লিকেশন।

এই অবশ্যই আপনার পক্ষে কাজ করে .... # শান্তি


-1

ডেটা হ্যান্ডলিংয়ের ত্রুটি এড়াতে 50 এমবি সীমা নির্ধারণ করুন,

  app.use(bodyParser.json({
        limit : '50mb'    ///////// LIMIT for JSON
      }));

    app.use(bodyParser.urlencoded({
        limit : '50mb', ///////// LIMIT for URL ENCODE (image data)
        extended : true
      }));
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.