2015-11-13 11 views
5

Wiem, że zostało to zadane wiele razy, ale rozglądałem się i wciąż nie mogę znaleźć odpowiedzi na mój problem.Express + Postman, req.body jest pusty

Oto mój kod, upewniam się, że używam i skonfiguruję analizator treści przed zdefiniowaniem tras. Używam tylko .json() z bodyParser, ponieważ teraz testuję tylko funkcję POST, ale próbowałem nawet z app.use (bodyParser.urlencoded ({extended: true}));

Oto jak używam Postmana do przetestowania tej trasy. enter image description here

i tutaj jest odpowiedź otrzymam

Node app is running at localhost:5000 
Yoooooo 
{ host: 'localhost:5000', 
    connection: 'keep-alive', 
    'content-length': '146', 
    'cache-control': 'no-cache', 
    origin: 'chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop', 
    'content-type': 'multipart/form-data; boundary=----WebKitFormBoundarynJtRFnukjOQDaHgU', 
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36', 
    'postman-token': '984b101b-7780-5d6e-5a24-ad2c89b492fc', 
    accept: '*/*', 
    'accept-encoding': 'gzip, deflate', 
    'accept-language': 'en-GB,en-US;q=0.8,en;q=0.6' } 
{} 

W tym momencie będę naprawdę wdzięczny za każdą pomoc. Dzięki.

Odpowiedz

7

AFAIK trzeba użyć Body-Parser: https://github.com/expressjs/body-parser

bodyParser = require('body-parser').json(); 
app.post('/itemSearch', bodyParser, function(req, res) { 
    //var Keywords = req.body.Keywords; 
    console.log("Yoooooo"); 
    console.log(req.headers); 
    console.log(req.body); 
    res.status(200).send("yay"); 
}); 

Następnie spróbuj listonosz ustawiania ciała jako raw json:

{ 
    "test": "yay" 
} 
+2

Dziękuję bardzo. Problem polegał na tym, że z PostMana wysyłałem żądanie poprzez dane formularza – seongju

23

Po spędzeniu kilku godzin I zrealizowane potrzebę zmiany typ surowy w listonoszu do JSON enter image description here

+0

Uratowałeś mój dzień, dzięki! – mimic

+0

Na wypadek, gdyby ktoś tu spojrzał, upewnij się, że używasz nagłówka JSON Postmana, a nie JavaScript. Miałem Javascript i to nie zadziała. – k00k

+0

Pracowałem dla mnie. Dzięki !! –