【问题标题】:Nodejs, empty body from post dataNodejs,帖子数据中的空正文
【发布时间】:2015-04-02 18:59:13
【问题描述】:

这是我的代码,很简单:

var express = require('express');
var http = require('http');
var bodyParser = require('body-parser');

var app = express();
app.use(bodyParser());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.text());

app.all('*', function (req, res) {
    console.log(req.body);
});

http.createServer(app).listen(4001, function () {
    console.log("Express server listening on port ");
});

并且有两种类型的帖子需要接收: 一个有

内容类型:application/x-www-form-urlencoded;文本/html;字符集=utf-8

另一个与

内容类型:text/plain;charset=utf-8

我只能接收第二种类型的帖子消息。 我也可以收到第一种类型的post请求,但是为什么body是空的? 我用wireshake验证了body不是空的。

================================================ ======================== 我尝试了不同的方法来处理可以成功获取帖子数据的帖子。但我不知道为什么 express 或 body-parse 不适用于该帖子。以下是代码:

var server = function(req, res){
    var postdata = "";
    req.addListener("data", function(postchunk){
        postdata += postchunk;
    });
}

【问题讨论】:

  • 你有什么问题?
  • 我没拿到body,是不是错过了什么设置?
  • 尝试删除 app.use(bodyParser());看看它是否有效
  • 仍然不适合我。请求正文仍然为空。

标签: node.js


【解决方案1】:

尝试发送响应以使连接真正完成。在您的 app.all 中,设置如下内容:

res.status(200).send();

...为我工作。

【讨论】:

  • 仍然不适合我。请求正文仍然为空。
  • 您如何发布数据?我使用了 curl 和上面的 res.status sn-p,效果很好。你的帖子有问题吗?
  • 感谢您的回复。我不知道是不是那个帖子的问题。但是我尝试了另一种方法。如果我不使用 express 和 body-parse,我可以得到帖子的所有数据。以下是我的代码: server = function(req, res){ var postdata = ""; request.addListener("data", function(postchunk){ postdata += postchunk; console.log(postdata); }); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-12
  • 2016-08-27
  • 2020-06-06
  • 1970-01-01
  • 1970-01-01
  • 2021-07-24
  • 1970-01-01
相关资源
最近更新 更多