快递请求正文未定义?

时间:2016-06-01 10:19:09

标签: javascript ios node.js express alamofire

我正在使用Alamofire(在iOS中)进行简单的POST请求,并使用express在节点中处理它。 我在iOS中的代码:

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

这是我在节点中的代码:

    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');
});

我的终端控制台打印出来"服务器已收到帖子" ,所以我知道帖子实际上是触发的。问题是,它不是记录req.body,而是打印出" undefined"。我环顾四周,它似乎是一个身体解析器"需要配置的东西,但显然是新版本的快递已经过时了。所以我迷失了该怎么做。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我很确定你需要将身体解析器添加到你的快递应用程序来解析JSON。

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

请参阅http://expressjs.com/de/api.html#req.body