Estou usando o express 4.0 e estou ciente de que o analisador de corpo foi retirado do núcleo expresso, estou usando a substituição recomendada, mas estou obtendo
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
Onde encontro esse suposto middleware? ou eu não deveria estar recebendo esse erro?
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);
fonte
extended
faz?curl --data "user[email]=foo&user[password]=bar" localhost:3000/login
seriam recebidos pelo servidor dareq.body
mesma forma{ user[email]: "foo", ...}
quereq.body
seria{user: {email: "foo", ... }}
comextended: true
.Deseja zero avisos ? Use-o assim:
Explicação : O valor padrão da
extended
opção foi descontinuado, o que significa que você precisa transmitir explicitamente o valor verdadeiro ou falso.fonte
app.use(bodyParser.json()).use(bodyParser.urlencoded({ extended: true }));
Nas versões mais antigas do express, tivemos que usar:
porque body-parser era um middleware entre node e express. Agora temos que usá-lo como:
fonte
Se você estiver usando express>
4.16
, poderá usarexpress.json()
eexpress.urlencoded()
Source Express 4.16.0 - Data de lançamento: 28-09-2017
Com isso,
torna-se,
fonte
Quando
extended
definido como true, os corpos desinflados (comprimidos) serão inflados; Quandoextended
definido como falso, os corpos desinflados são rejeitados.fonte
Qual é a sua opinião para usar express-generator, ele irá gerar um projeto esqueleto para começar,
without deprecated messages
apareceu em seu logexecute este comando
Agora, crie o novo aplicativo iniciante do Express.js, digite este comando
your Node projects folder
.Que expressa comando tell para gerar novo aplicativo Node.js com o nome
node-express-app
.então
Go to the newly created project directory
,install npm packages
estart the app
usando o comandofonte
Eu descobri que ao adicionar
ajuda, às vezes é uma questão de sua consulta que determina como o Express lida com isso.
Por exemplo, pode ser que seus parâmetros sejam passados no URL e não no corpo
Nesse caso, você precisa capturar o corpo e parâmetros url e usar o que estiver disponível (com preferência pelos parâmetros body no caso abaixo)
fonte
app.use(bodyParser.urlencoded({extended: true}));
Eu tenho o mesmo problema, mas este trabalho para mim. Você pode tentar esta parte estendida.
fonte