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.