2017-09-25 3 views
0

J'essaie de consigner toutes les données et de les renvoyer en tant que réponse.Envoyer des données POST avec json brut avec un facteur Express

app.post('/data', (req, res) => { 
    const data = req.body 
    console.log(data) 
    return res.json({ 
    data 
    }) 
}) 

J'envoie des données avec Postman. Dans l'onglet Corps, j'ai "brut" sélectionné et "JSON (application/json)". L'onglet En-têtes est Content-Type application/json. J'envoie ceci:

{ 
     "aa": 23 
    } 

Lorsque je clique sur le bouton envoyer tout ce que je reçois est un objet vide et la variable de données n'est pas défini dans mon console.log. Comment le réparer? J'ai double vérifié tout. Cela devrait fonctionner, mais ce n'est pas le cas.

+4

Avez-vous installé un middleware pour gérer les données de demande de publication, telles que body-parser? – IzzyCooper

Répondre

1

Il semble que vous transmettiez une valeur non valide à res.JSON(). Essayez:

return res.json(data); 
+0

Pas nécessairement, la propriété JS raccourcie parfaitement valide – James

+0

Maintenant, je n'ai rien dans Body et la variable de données est encore indéfini dans console.log. –

1

D'accord, j'ai trouvé la solution. "Comme le module body-parser est utilisé pour analyser le corps et les urls, il doit être appelé avant tout appel à" req.body ... "."

Je l'ai fait:

import bodyParser from 'body-parser' 

const app = express() 
app.use(bodyParser.urlencoded()) 
app.use(bodyParser.json()) 

app.post('/data', (req, res) => { 
    const data = req.body 
    console.log(data) 
    return res.json({ 
    data 
    }) 
}) 

Et maintenant il fonctionne très bien.