error de lanzamiento rápido como `analizador de cuerpo desaprobado extendido indefinido`


127

En mi aplicación de nodo, estoy usando express. todo funciona bien, pero recibo un error en el cmd. Yo uso todos son módulos actualizados ...

mi código :

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

Error:

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

¿Puede alguien ayudarme a entender este problema por favor?


@RamprasathSelvam - ¡Sí, lo fue!
— 3gwebtrain

@RamprasathSelvam: puede haber algún problema con su código, versión del módulo o integración, consulte
— 3gwebtrain

¿Dónde votamos por el peor mensaje de error? Especialmente teniendo en cuenta que es muy probable que esto suceda, el mensaje solo parece una bolsa de palabras aleatorias.
— Spechter

Respuestas:


263

Usted tiene que establecer explícitamente extendedpara bodyParser.urlencoded()desde el valor por defecto va a cambiar en la próxima versión principal de body-parser. Ejemplo:

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

Desde express4.16.0, también puedes hacer:

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

11
¿Qué hace esto?
— Samarth Agarwal

66
@SamarthAgarwal Según el archivo Léame , utiliza el qsmódulo para analizar el cuerpo, lo que permite analizar una matriz anidada como la sintaxis como test[foo][bar]=baz(que se convierte {'test': {'foo': {'bar': 'baz'}}})
— Bailey Parker


14

El error dice que debe proporcionar la opción extendida para el analizador de cuerpo de la siguiente manera:

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


0

Si está aquí, después de mayo de 2020, eso significa que seguramente está usando el nodo de la versión v13.12.0 .. Entonces, app.use (express.urlencoded ({extended: true}))

Esto seguramente va a funcionar para usted ... # paz


-1

Establezca el límite de 50 MB para evitar el error de manejo de datos., En urlencode limit 50mb es para ayudarlo a pasar la imagen

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

    app.use(bodyParser.urlencoded({
        limit : '50mb', ///////// LIMIT for URL ENCODE (image data)
        extended : true
      }));
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.