व्यक्त त्रुटि के रूप में `शरीर-पार्सर अपूरणीय विस्तारित विस्तारित`


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

@RamprasathSelvam - आपके कोड, मॉड्यूल या एकीकरण के संस्करण में कुछ गड़बड़ हो सकती है, कृपया जाँच करें
3gwebtrain

हम सबसे खराब त्रुटि संदेश के लिए कहां वोट देते हैं? विशेष रूप से ऐसा होने की संभावना को देखते हुए, संदेश सिर्फ यादृच्छिक शब्दों के एक बैग की तरह दिखता है।
6

जवाबों:


263

आपको स्पष्ट रूप से इसकेextended लिए सेट करना होगा bodyParser.urlencoded()क्योंकि अगले प्रमुख संस्करण में डिफ़ॉल्ट मान बदलने वाला है body-parser। उदाहरण:

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

express4.16.0 के बाद से , आप यह भी कर सकते हैं:

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

11
यह क्या करता है?
समर्थ अग्रवाल

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

नमूना के लिए npm.js प्रलेखन पृष्ठ देखें: https://www.npmjs.com/package/body-parser#expressconnect-top-level-generic


0

यदि आप मई -२०१० के बाद यहाँ हैं, तो इसका मतलब है कि आप निश्चित रूप से संस्करण v13.12.0 का उपयोग कर रहे हैं .. तो, app.use (express.urlencoded ({विस्तारित: true}))

यह निश्चित रूप से आपके लिए काम करता है .... # शांति


-1

डेटा हैंडलिंग त्रुटि से बचने के लिए सीमा 50 एमबी निर्धारित करें। urlencode सीमा में 50mb आपकी सहायता के लिए है

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

    app.use(bodyParser.urlencoded({
        limit : '50mb', ///////// LIMIT for URL ENCODE (image data)
        extended : true
      }));
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.