当前位置: 首页 > 面试题库 >

Express.js POST请求主体为空

钦枫
2023-03-14
问题内容

所以我在与node.js一起运行的server.js文件中有以下代码。我正在使用express处理HTTP请求。

app.post('/api/destinations', function (req, res) {
  var new_destination = req.body;
  console.log(req.body);
  console.log(req.headers);
  db.Destination.create(new_destination, function(err, destination){
    if (err){
      res.send("Error: "+err);
    }
    res.json(destination);
  });
});

我在终端中运行以下命令:

curl -XPOST -H "Content-Type: application/json" -d '{"location": "New York","haveBeen": true,"rating": 4}' http://localhost:3000/api/destinations

运行该server.js后,将输出以下内容。

{}
{ host: 'localhost:3000',
  'user-agent': 'curl/7.43.0',
  accept: '*/*',
  'content-type': 'application/json',
  'content-length': '53' }

所以req.body是{}。我阅读了其他有关类似问题的Stack
Overflow帖子,其中由于正文解析器,内容类型不正确。但这不是问题,因为内容类型是application / json。

有什么想法如何获得请求的实际内容吗?

提前致谢。


问题答案:

您还需要bodyParser.json:

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());


 类似资料:
  • 问题内容: 将请求正文与GET请求一起传递是否违反REST风格? 例如在Elasticsearch中过滤一些信息 甚至设计了一些工具来避免GET请求中的请求主体(例如邮递员) 问题答案: 从RFC: GET请求消息中的有效负载没有定义的语义。在GET请求上发送有效内容正文可能会导致某些现有实现拒绝该请求。 换句话说,这不是禁止的,但是它是未定义的行为,应避免使用。HTTP客户端,服务器和代理可以随

  • 我试图在flask应用程序上记录post请求,如下所示: 我这样做是因为我怀疑有时我会在POST上得到一个格式错误的JSON对象。我看到的问题是日志包含一个截断的请求体——它似乎被夹在中间... 我不能放日志摘要,因为它是敏感数据。。为什么请求被截断?我做错了吗? 谢谢

  • 我正在用Application/JSON数据发送原始POST请求到邮递员服务器。我需要使用这个JSON对象,并在请求前脚本中追加一些数据。但是我只能找到如何访问环境变量,而不能请求主体。有人知道吗?谢了!

  • 如何将转换为请求正文的表示形式?或者,如何正确地记录整个请求/响应,同时能够在其中散列潜在的凭据?

  • 我需要你的帮助。我正在使用Spring3实现一个RESTful WebService的服务器部分。不幸的是,我对如何发送请求没有任何影响,所以没有办法改变这一点。 我想接收一个作为多部分/表单数据的http post请求。我有一个@RestController并做了一个@RequestMapping..请求到达我的方法 我希望可以使用方法检索所有部分。这是不可能的,总是没有可用的零件。我想我找到了

  • 问题内容: 我正在尝试使用类似于以下内容的InputStream来执行POST: 在这种情况下,InputStream来自压缩的tar文件。 张贴InputStream的正确方法是什么? 问题答案: 我在这里想到的唯一解决方案是使用TypeFile类: 和接口(这次没有显式设置Content-Type标头): 使用我自己的TypedInput实现会导致模糊的EOF异常,即使我提供了length()