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.