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


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.