As coisas mudaram mais uma vez a partir do Express 4.16.0 , agora você pode usar express.json()
e, express.urlencoded()
assim como no Express 3.0 .
Isso foi diferente ao iniciar o Express 4.0 a 4.15 :
$ npm install --save body-parser
e depois:
var bodyParser = require('body-parser')
app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
O resto é como no Express 3.0 :
Primeiro, você precisa adicionar algum middleware para analisar os dados de postagem do corpo.
Adicione uma ou ambas as seguintes linhas de código:
app.use(express.json()); // to support JSON-encoded bodies
app.use(express.urlencoded()); // to support URL-encoded bodies
Em seguida, no seu manipulador, use o req.body
objeto:
// assuming POST: name=foo&color=red <-- URL encoding
//
// or POST: {"name":"foo","color":"red"} <-- JSON encoding
app.post('/test-page', function(req, res) {
var name = req.body.name,
color = req.body.color;
// ...
});
Observe que o uso de express.bodyParser()
não é recomendado.
app.use(express.bodyParser());
...é equivalente a:
app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
Existem preocupações de segurança express.multipart()
e, portanto, é melhor adicionar explicitamente suporte para os tipos de codificação específicos necessários. Se você precisar de codificação multiparte (para suportar o upload de arquivos, por exemplo), leia isso .
bodyParser()
respostas aqui também devem ler a resposta de