2016-06-01 14 views
0

Ich mache eine einfache POST-Anfrage mit Alamofire (in iOS) und Behandlung in Knoten mit Express. Mein Code in iOS:Anfrage Körper in Express ist undefined?

let boop: [String: AnyObject] = ["username":"fakeuser"]; 
Alamofire.request(.POST,"http://localhost:3000/test", parameters: boop, encoding: .JSON) 

Und dies ist mein Code in Knoten:

var app = require('express')(); 
var http = require('http').Server(app); 
app.post('/test', function(req, res){ 
console.log("THE SERVER HAS RECEIVED THE POST! \n") 
console.log(req.body); 
}); 

http.listen(PORT, function(){ 
    console.log('listening on *:3000'); 
}); 

Meine Terminalkonsole druckt "der Server die Post erhalten hat", so weiß ich, dass der Beitrag ist tatsächlich Ausgelöst. Das Problem besteht darin, dass anstatt den req.body zu protokollieren, stattdessen "undefined" ausgedruckt wird. Ich habe mich umgesehen und es scheint, als ob ein "Body Parser" -Ding konfiguriert werden müsste, aber anscheinend ist das mit der neuen Version von express veraltet. So bin ich verloren was zu tun ist.

Irgendwelche Ratschläge?

Antwort

1

Ich bin mir ziemlich sicher, dass Sie den Body-Parser zu Ihrer Express-App hinzufügen müssen, um den JSON zu parsen.

const bodyParser = require('body-parser'); 
app.use(bodyParser.json()); 

Siehe http://expressjs.com/de/api.html#req.body.

Verwandte Themen