node.js - node - express js
bodyParser está en desuso expreso 4 (7)
Estoy usando Express 4.0 y soy consciente de que el analizador de cuerpo ha sido sacado del núcleo de Express, estoy usando el reemplazo recomendado, pero estoy recibiendo
body-parser deprecated bodyParser: use individual json/urlencoded middlewares server.js:15:12 body-parser deprecated urlencoded: explicitly specify "extended: true" for extended parsing node_modules/body-parser/index.js:74:29
¿Dónde encuentro este supuesto middlewares? ¿O no debería estar recibiendo este error?
var express = require(''express'');
var server = express();
var bodyParser = require(''body-parser'');
var mongoose = require(''mongoose'');
var passport = require(''./config/passport'');
var routes = require(''./routes'');
mongoose.connect(''mongodb://localhost/myapp'', function(err) {
if(err) throw err;
});
server.set(''view engine'', ''jade'');
server.set(''views'', __dirname + ''/views'');
server.use(bodyParser());
server.use(passport.initialize());
// Application Level Routes
routes(server, passport);
server.use(express.static(__dirname + ''/public''));
server.listen(3000);
body-parser es una pieza de middleware expreso que lee la entrada de un formulario y la almacena como un objeto javascript accesible a través de
req.body
''body-parser'' debe estar instalado (a través denpm install --save body-parser
) Para obtener más información, consulte: https://github.com/expressjs/body-parser
var bodyParser = require(''body-parser'');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies
Cuando extended
se establece en verdadero, los cuerpos desinflados (comprimidos) se inflarán; cuando extended
se establece en falso, los cuerpos desinflados son rechazados.
¿Cuál es su opinión de usar Express-generator? Para empezar, generará un proyecto de esqueleto, without deprecated messages
en su registro.
ejecuta este comando
npm install express-generator -g
Ahora, cree la nueva aplicación de inicio Express.js escribiendo este comando en your Node projects folder
.
express node-express-app
Ese comando le dice a express que genere una nueva aplicación Node.js con el nombre node-express-app
.
Luego Go to the newly created project directory
, install npm packages
e start the app
con el comando
cd node-express-app && npm install && npm start
¿Quieres cero advertencias ? Úsalo así:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
Explicación : el valor predeterminado de la opción extended
ha quedado en desuso, lo que significa que debe pasar explícitamente un valor verdadero o falso.
En versiones anteriores de Express, tuvimos que usar:
app.use(express.bodyparser());
porque body-parser era un middleware entre nodo y expreso. Ahora tenemos que usarlo como:
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
Encontré que mientras agregaba
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
ayuda, a veces es una cuestión de su consulta lo que determina cómo Express lo maneja.
Por ejemplo, podría ser que sus parámetros se pasen en la URL en lugar de en el cuerpo
En tal caso, debe capturar los parámetros del cuerpo y de la URL y utilizar el que esté disponible (con preferencia por los parámetros del cuerpo en el caso que se muestra a continuación)
app.route(''/echo'')
.all((req,res)=>{
let pars = (Object.keys(req.body).length > 0)?req.body:req.query;
res.send(pars);
});
Significa que el uso del constructor bodyParser()
ha quedado en deprecated , a partir del 2014-06-19.
app.use(bodyParser()); //Now deprecated
Ahora necesitas llamar a los métodos por separado.
app.use(bodyParser.urlencoded());
app.use(bodyParser.json());
Y así.
Si aún urlencoded
una advertencia con urlencoded
, debe usar
app.use(bodyParser.urlencoded({
extended: true
}));
La clave del objeto de configuración extended
ahora debe pasarse explícitamente, ya que ahora no tiene un valor predeterminado.
Si está utilizando Express> = 4.16.0, el analizador de cuerpo se ha vuelto a agregar bajo los métodos express.json()
y express.urlencoded()
.
app.use(bodyParser.urlencoded({extended: true}));
Tengo el mismo problema pero este trabajo para mí. Puedes probar esta parte extendida.