ifade, "gövde ayrıştırıcısı kullanımdan kaldırıldı, tanımsız genişletilmiş" olarak hata verir


127

Düğüm uygulamamda ekspres kullanıyorum. hepsi iyi çalışıyor, Ama cmd. Tümü güncellenmiş modüller kullanıyorum ...

benim kodum:

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

Hata:

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

Bu sorunu anlamama yardımcı olabilir misiniz lütfen?


@RamprasathSelvam - Evet öyleydi !!
3gwebtrain

@RamprasathSelvam - kodunuzda, modül sürümünüzde veya entegrasyonunuzda bir sorun olabilir, lütfen kontrol edin
3gwebtrain

Şimdiye kadarki en kötü hata mesajını nerede oylarız? Özellikle bunun olma ihtimalinin yüksek olduğu düşünülürse, mesaj sadece rastgele kelimelerden oluşan bir paket gibi görünüyor.
spechter

Yanıtlar:


265

Açıkça ayarlamak zorunda extendediçin bodyParser.urlencoded()çünkü varsayılan değer bir sonraki büyük sürümde değişecek arasında body-parser. Misal:

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

Yana express4.16.0, ayrıca yapabilirsiniz:

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

11
Bu ne yapar?
Samarth Agarwal

6
@SamarthAgarwal göre Benioku'da , kullandığı qssözdizimi gibi iç içe geçmiş bir dizi sağlar vücut ayrıştırmak için modülü gibi ayrıştırılmasına test[foo][bar]=baz(hale geldiği {'test': {'foo': {'bar': 'baz'}}})
Bailey Parker


14

Hata, gövde ayrıştırıcısı için aşağıdaki gibi genişletilmiş seçeneği sağlamanız gerektiğini söylüyor:

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


0

Mayıs-2020'den sonra buradaysanız, bu kesinlikle v13.12.0 sürümünün düğümünü kullandığınız anlamına gelir. Yani, app.use (express.urlencoded ({extended: true}))

Bu kesinlikle senin için işe yarayacak .... # barış


-1

Veri işleme hatasını önlemek için sınırı 50 MB ayarlayın., Urlencode sınırında 50mb, imageData throw url'sini iletmenize yardımcı olmak içindir

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

    app.use(bodyParser.urlencoded({
        limit : '50mb', ///////// LIMIT for URL ENCODE (image data)
        extended : true
      }));
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.