通过http.request发出post请求时req.body为空

2023-11-24

我有一个使用 bodyparser() 的 Nodejs 应用程序,这条路线:

app.post('/users', function(req, res){
  res.json(req.body)
})

当我卷曲时

curl -X POST 127.0.0.1:3000/users -d 'name=batman'

服务器发回这个 json :

{ name: 'batman' }

我的问题是当尝试使用 http.request 发出相同的请求时,req.body 为空 我正在执行相同的调用,这是我使用 node 运行的 test.js 文件:

var http = require('http');

var options = {
  host: '127.0.0.1',
  port: 3000,
  path: '/api/users',
  method: 'POST'
};

var request = http.request(options, function (response) {
  var str = '';
  response.on('data', function (chunk) {
    str += chunk;
  });

  response.on('end', function () {
    console.log(str);
  });
});

request.end("name=batman");

请求正文为空 ->{}

为什么 ?我尝试过设置内容长度但没有执行任何操作。


你需要通过一个Content-Type告诉bodyParser()使用哪个解析器。对于常规表单数据,您应该使用Content-Type: application/x-www-form-urlencoded, so:

var options = {
  host: '127.0.0.1',
  port: 3000,
  path: '/api/users',
  method: 'POST',
  'Content-Type': 'application/x-www-form-urlencoded'
};

应该做到这一点。

Edit:如果您发现自己在 Node 中执行大量客户端 HTTP 请求,我衷心推荐迈克·罗杰斯request module,这使得这些事情变得轻而易举。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过http.request发出post请求时req.body为空 的相关文章

随机推荐

  • 从动作脚本库中检测 AIR 与 Flash Player

    我有一个 SWC 其操作方式需要略有不同 具体取决于它是否由 AIR 托管 我在网上看到了两个建议 测试 WindowedApplication 的 Application application 测试 Security sandboxTy
  • Ruby on Rails 中自动递增非主键字段

    在RoR迁移中 如何自动递增非主键字段 我想在数据库定义中而不是在模型中执行此操作 您需要执行一条 SQL 语句 statement ALTER TABLE users CHANGE id id SMALLINT 5 UNSIGNED NO
  • 隐藏解释器导入的模块

    我构建了一个模块 它使用几个不同的模块来完成各种任务 当我在 IPython 中导入模块并列出可用于自动完成的函数时 这些外部模块包含在该列表中 是否有可能以某种方式隐藏它们 在Python中 模块可以定义一个 all 变量 它是某人执行以
  • MVC“添加控制器”是“无法检索元数据...配置系统无法初始化”

    我从头开始创建了一个包含两个项目的新解决方案 一个是 MVC 3 另一个是支持 EF 4 2 项目 整个事情构建成功 我从 MVC 项目中打开 添加控制器 对话框 并让它根据我从支持 EF 项目中选择的上下文和模型生成代码 添加控制器 对话
  • 后台计时器更新 UI?

    我的申请遇到了一点问题 我想每 10 秒更新一次 UI 上的内容 我首先使用了一个DispatcherTimer为此 但它会在短时间内阻止我的 UI 因为更新方法需要从网络加载某些内容 并且此操作需要一些时间 现在我想到了某种后台工作者 然
  • Windows批处理脚本解析CSV文件并输出文本文件

    我在另一个页面上看到了回复 帮助编写批处理脚本来解析 CSV 文件并输出文本文件 出色的代码顺便说一句 ECHO OFF IF 1 GOTO EOF SET filename 1 SET fcount 0 SET linenum 0 FOR
  • 在某个短语之后分割字符串?

    我有一批绳子需要剪掉 它们基本上是一个描述符 后面跟着代码 我只想保留描述符 a descriptor dps 23 fd another 23 fd and another fd and one without a code 上面的代码是
  • 在没有无限摘要的情况下从 Angular 成功调用history.pushState()?

    有办法打电话吗history pushState 没有角度进入无限消化循环 我正在尝试将我的应用程序从后端路由迁移到前端路由 并且所有 stackoverflow 帖子 google 资源似乎都没有答案 这就是我们基于 github 评论在
  • 如何添加 IDesignTimeDbContextFactory 的实现以添加迁移到 .Net core 2.0 应用程序?

    我正在尝试从 NET Core 2 0 MVC 应用程序的包管理器控制台运行 Add Migration InitialCreate 命令 查看所有可能的来源后仍然无法解决问题 错误描述为 PM gt Add Migration Initi
  • 如何在 Neo4j 2.2.0-RC01 上禁用基本身份验证

    目前我使用 Neo4j 2 2 0 RC01 它默认启用基本身份验证 如何禁用 Neo4j 2 2 0 RC01 上的默认基本身份验证 In file conf neo4j server properties 将 dbms security
  • 为什么在 C++ 中使用 try 和 catch()?

    我明白那个try and catch 用于异常处理 以防在某些情况下程序发生错误或崩溃 我也了解它们是如何工作的 但为什么要使用try and catch 为什么不直接使用if 查找特定案例的语句 如果该案例为真 则确实如此cout lt
  • 如何在Java中用空字符串替换'

    如何在 Java 中将单引号 替换为空字符串 我尝试跟随但似乎不起作用 String data Sid s den data replace data replaceAll 提前致谢 非常感谢任何帮助 输出应该是 Sids den 谢谢大家
  • Django filter() 查找类型文档

    我查看了 Django 的文档并用 Google 搜索了该短语的每个变体 但我找不到任何准确描述查找类型行为的文档 app objects filter column lookuptype criteria 我找到了有关我的查找类型的文档c
  • 为什么向 Double.MaxValue 添加数字不会使其成为 Double.PositiveInfinity?

    In 双正无穷文档中写道 当运算结果大于 MaxValue 时返回该常量 但是 当我尝试将数字添加到最大值时double 它不会返回infinity 我尝试过运行这个 double maxVal Double MaxValue maxVal
  • Python PDFMIner - PDF 到 CSV

    我希望能够将 PDF 转换为 CSV 文件 并找到了几个有用的脚本 但是作为 Python 新手 我有一个问题 在哪里指定要打印到的 PDF 和 CSV 的文件路径 我正在使用 Python 2 7 11 和 PDFMiner 201403
  • Swift 以编程方式导航到另一个视图控制器/场景

    我正在使用以下代码以编程方式导航到另一个 ViewController 它工作得很好 但它在某种程度上隐藏了navigation bar 我该如何解决 导航栏是通过嵌入ViewController in the navigation con
  • 具有 Tensorflow 后端的 Keras 可以强制随意使用 CPU 或 GPU 吗?

    我安装了 Keras Tensorflow 后端和 CUDA 有时我想按需强制 Keras 使用 CPU 无需在虚拟环境中安装单独的仅 CPU 的 Tensorflow 即可完成此操作吗 如果是这样怎么办 如果后端是 Theano 则可以设
  • Shiny:observeEvent和eventReactive有什么区别?

    我现在读了几次有关反应式编程的闪亮文档 但我无法正确理解两者之间的区别observeEvent and eventReactive 文档说 每当您想要执行操作来响应事件时 请使用observeEvent 请注意 重新计算值 通常不算作执行操
  • 复合主键与附加“ID”列?

    如果我们有一个这样的表 书籍 假装 ISBN 不存在 Author Title Edition 出版年份 Price 有人可能会说 Author Title Edition 可能是候选 主键 是什么决定了候选 主键是否应该是 Author
  • 通过http.request发出post请求时req.body为空

    我有一个使用 bodyparser 的 Nodejs 应用程序 这条路线 app post users function req res res json req body 当我卷曲时 curl X POST 127 0 0 1 3000