2017-09-07 3 views
2

Lors de l'exécution d'une API Express, je n'arrive pas à analyser correctement les données, y compris un ensemble d'objets, lorsque j'utilise une route POST.Tableau d'analyse express de POST

Une version simplifiée du code -

var express = require('express'); 
var app = express(); 
var router = express.Router(); 
var bodyParser = require('body-parser'); 
var parseUrlencoded = bodyParser.urlencoded({ extended: false }); 

router.post('/', parseUrlencoded, function(req, res) { 
    console.log(req.body); 
}); 

Frapper l'API avec le

{ name: "Object name", 
    arrayOfObjects: [ 
     { name: "Sub Object Name", subType: "Sub Object Type" }, 
     { name: "Sub Object Name 2", subType: "Sub Object Type 2" } 
    ] 
} 

journaux suivants sur

{ name: "Object name", 
    'arrayOfObjects[0][name]': "Sub Object Name", 
    'arrayOfObjects[0][subType]': "Sub Object Type", 
    'arrayOfObjects[1][name]': "Sub Object Name 2", 
    'arrayOfObjects[1][subType]': "Sub Object Name", 
} 

Je souhaite recevoir cela comme un tableau, ce qui est le cas lors de l'utilisation d'une requête PUT.

Je suis sûr que cela est possible en utilisant une configuration de bodyParser ou similaire, mais j'ai du mal à trouver une bonne solution.

Répondre

3

Ok, de votre question, je comprends que vous voulez manipuler le POST corps comme un tableau JSON puis utilisez qs bibliothèque en faisant étenduvrai

app.use(bodyParser.urlencoded({ extended: true })); 
+0

Bien sûr! Merci – user215674

0

changement option étendue true il va s'abstenir de le transformer en un json