快递中的请求正文未定义?

Posted

技术标签:

【中文标题】快递中的请求正文未定义?【英文标题】:Request body in express is undefined? 【发布时间】:2016-06-01 10:19:08 【问题描述】:

我正在使用 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,而是打印出“未定义”。我环顾四周,似乎需要配置“正文解析器”的东西,但显然新版本的 express 已经过时了。所以我不知道该怎么做。

有什么建议吗?

【问题讨论】:

【参考方案1】:

我很确定您需要将 body-parser 添加到您的 express 应用以解析 JSON。

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

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

【讨论】:

以上是关于快递中的请求正文未定义?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 HTTP DELETE 请求正文显示为未定义?

解决快递请求中的 UnhandledPromiseRejectionWarning

req.user 未定义 - 节点 + 快递 + 护照-facebook

无法读取未定义 CRUD 操作的“_id”类型的属性

Node.js + Express POST 请求返回未定义

邮递员发布请求无法读取未定义的属性