web-dev-qa-db-fra.com

Comment lire les données reçues au format application/x-www-form-urlencoded sur un serveur de nœud?

Je reçois des données sur une URL Webhook sous la forme d'une demande POST. Notez que le type de contenu de cette demande est application/x-www-form-urlencoded.

C'est une requête de serveur à serveur. Et sur mon serveur de nœud, j'ai simplement essayé de lire les données reçues en utilisant req.body.parameters mais les valeurs résultantes sont "undefined" ?

Alors, comment puis-je lire les données de demande de données? Dois-je analyser les données? Dois-je installer un module npm? Pouvez-vous écrire un extrait de code expliquant le cas?

12
Sowmay Jain

Si vous utilisez Express.js comme infrastructure d'application Web Node.js, utilisez ExpressJS body-parser .

L'exemple de code sera comme ça.

var bodyParser = require('body-parser');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies

// With body-parser configured, now create our route. We can grab POST 
// parameters using req.body.variable_name

// POST http://localhost:8080/api/books
// parameters sent with 
app.post('/api/books', function(req, res) {
    var book_id = req.body.id;
    var bookName = req.body.token;
    //Send the response back
    res.send(book_id + ' ' + bookName);
});
15
samith

Si vous utilisez restify, ce serait similaire:

var server = restify.createServer()
server.listen(port, () => console.log(`${server.name} listening ${server.url}`))
server.use(restify.plugins.bodyParser()) // can parse Content-type: 'application/x-www-form-urlencoded'
server.post('/your_url', your_handler_func)
0
Marshal