如果我不使用 multer,ExpressJS 请求正文为空

2024-06-28

我的 Express 应用程序遇到了这个非常奇怪的问题,我只想访问通过表单数据通过发布请求发送的 req.body 数据,但不幸的是,当我尝试访问 request.body 中的这些值时,我收到未定义的错误,但是什么是奇怪的是,如果我使用 multer 中间件(我在另一条路线上使用它来上传文件),我不会收到此错误。 我已经配置了express提供的默认主体解析器。

//body pharser
app.use(express.json());
app.use(
  express.urlencoded({
    extended: true,
  })
);

//multer configuration
const ImageUpload = multer({
  storage: storage,
  limits: { fileSize: 4194304 },
  fileFilter: Imagfilter,
});

//this will return undefined
app.post("/available",(req, res) => {
  console.log(req.body.name);
}

//but this will return the value without any issues
app.post(
  "/available",
  ImageUpload.fields([
    { name: "nicImageFront", maxCount: 1 },
    { name: "nicImageBack", maxCount: 1 },
  ]),
  (req, res) => {
 console.log(req.body.name);
}

这没什么奇怪的。

FormData https://developer.mozilla.org/en-US/docs/Web/API/FormData对象生成多部分请求。他们必须这样做,这就是他们支持文件上传的方式。

FormData 接口提供了一种轻松构造一组表示表单字段及其值的键/值对的方法,然后可以使用 XMLHttpRequest.send() 方法轻松发送这些键/值对。如果编码类型设置为“multipart/form-data”,它使用的格式与表单使用的格式相同。

Multer 旨在解析多部分请求。

The urlencoded中间件旨在解析 urlencoded 请求,而不是多部分请求。

The json中间件旨在解析 JSON 编码的请求,而不是多部分请求。

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

如果我不使用 multer,ExpressJS 请求正文为空 的相关文章

  • 使用 ReactJS 旋转图像预览

    我正在尝试使用 ReactJS 旋转图像的预览 因此 我首先允许渲染预览的上传功能 然后在用户点击上传之前 我希望他们可以选择根据自己的喜好旋转图像 这是我用来预览图像的 class ImageUpload extends React Co
  • 在 AngularJS 和 Nodejs 之间共享代码

    使用在前端和后端之间共享代码的最佳方式是什么javascript 特别是说之间nodejs and angularjs 问题是我们使用的是相同的enums and constant values例如error codes在后端和前端 现在
  • 工厂函数方法不更新变量

    我正在尝试设置一个工厂函数 该函数将更新所述工厂函数中特定变量的值 这看起来实现起来很简单 但是 每当我测试它时 我都会得到变量的原始设置值 而不是更新后的值 我确信在范围界定方面我缺少一些细微差别 但这里到底发生了什么 const fac
  • 无法加载资源:服务器在已部署的 React.js 项目中响应状态为 404(未找到)

    当我将 React 项目部署到 Surge 中时 构建成功并且可以获取应用程序 URL 但是当我链接到 URL 时 我可以在检查控制台中看到一个空白页面和一些错误 Failed to load resource the server res
  • iPhone Web 应用程序禁用缓存

    我使用 PHP 构建了一个 iPhone 网络应用程序 主 也是唯一 页面包括苹果移动网络应用程序支持 and 苹果触摸全屏元标记 以便在添加到主屏幕后可以全屏运行 然而 似乎每次我从主屏幕启动应用程序时 都会使用页面的缓存版本而不是刷新页
  • 错误:捆绑失败:TypeError:无法读取未定义的属性“transformFile”,React Native

    每当我运行react native start时 我都会收到此错误 但是最近在我在节点模块中安装了firebase tools和stripe之后 这种情况开始发生 但在此之前它会运行得很好 这也是错误的堆栈跟踪 ffff 127 0 0 1
  • 切换 Ag-Grid 中的浮动过滤器?

    我试图通过开关或按钮单击来确定浮动过滤器的显示 看起来很简单 我应该能够在 true 和 false 之间切换 将该值提供给网格选项中的浮动过滤器 然后刷新标题 对吗 不幸的是 网格似乎总是落后一步 当我第一次点击时 什么也没有发生 当我将
  • 将 Babel 与单个输出文件和 ES6 模块一起使用

    这是我的 gulp 任务 将 ES6 代码编译成单个 ES5 文件 我使用类和模块 import export 在 ES6 中 gulp src paths scripts pipe sourcemaps init pipe babel p
  • 停止倒数计时器 Javascript onClick

    给出以下代码 myButton02 click function myButton02 hide counter animate width toggle var count 65 var counter setInterval timer
  • 使用 javascript 和 jQuery UI datepicker 获取工作日数

    我有两个日期选择器 我可以从中计算天数 而无需计算星期六和星期日 但我想在周五和周六这样做 我尝试过一些不同的方法但失败了 对我来说 处理不包括周六和周日的天数很容易 但处理周五和周六的天数则不然 以下是我的 javascript 代码 f
  • 如何在反应路由器的登录页面中隐藏导航栏

    我想隐藏登录页面中的导航栏 我确实做到了 但我在其他页面上看不到导航栏 此代码是 My App jsx 文件的一部分 我在 App 的状态中创造了历史 当路径名是 或 login 时 我会隐藏导航栏 有用 但随后我输入了 ID 和密码 然后
  • Django 管理中的自定义依赖下拉菜单

    我有一个按阶段模型的项目外键 我很难在 Django 管理页面中创建依赖的下拉列表 我想当用户从该项目的 项目下拉 阶段选择一个项目时 在第二个下拉菜单中显示 实现这一目标的最佳方法是什么 如果下拉列表根据其父级的值来过滤项目 那就太好了
  • 链接index.html client.js 和 server.js

    我从 Node js 开始 我的第一个程序已经遇到了问题 下面是我正在使用的代码 索引 html
  • 多个模板槽的相同槽内容

    在vuejs中 有没有一种方法可以为多个插槽设置相同的内容 而无需复制粘贴 So this
  • up() 和 down() 与 Ext.getCmp()

    我很困惑我需要在 up down 和 Ext getCmp ID 之间使用哪一个作为 grep 对象 对我来说 定义对象的 ID 并通过 Ext getCmp ID 检索对象更容易 而且代码看起来更干净 例如 console log thi
  • jQuery 分钟和秒倒计时器

    我想创建一个 jquery 倒计时器 我尝试了以下代码 但它不起作用 我该怎么办 DEMO https jsfiddle net tbosn210 https jsfiddle net tbosn210 var interval setIn
  • getCompatedStyle 类似于 IE8 的 javascript 函数

    我正在尝试在 Java GWT 代码中编写一个 Javascript 函数 该函数获取以下样式的值 direction fontFamily fontSize fontSizeAdjust fontStyle fontWeight lett
  • 什么是标志变量?

    最近我遇到了标志变量 但我不知道它们的作用 我不太确定何时使用标志变量以及如何使用它 我用 Google 搜索了它 但没有任何与我的上下文 JavaScript 相关的具体示例 标记变量的定义和使用 http www javascriptk
  • Jquery 脉动改变颜色或图像

    我正在尝试使用 jquery 脉动代码让 div 改变颜色 但我希望它从红色变为黑色 但我听说要做到这一点 你必须下载某个插件 所以我希望它脉动为图片 到目前为止我有这两个代码 img src 36 gif alt width 105 he
  • 如何将 JSLint 用于依赖于 JQuery 的代码段?

    我对 Javascript 比较陌生 我想通过 JSLint 运行我周末玩的那段代码 这样它就可以指出我在哪里是个十足的白痴 不幸的是 我收到了大量关于缺少函数声明的错误 这些函数声明是 JQuery javascript 库及其各种插件的

随机推荐

  • Visual Studio Code - 基于 .gitignore 自动排除

    我希望 VSCode 根据我的情况自动排除文件 文件夹 gitignore配置 对于资源管理器排除 我找到了一个扩展 explorer excluded files它管理着files exclude设置 但对于快速打开文件 cmd p 我什
  • GitHub 的 README 支持哪些文件类型

    我注意到 GitHub README 使用了许多不同的文件类型 最常见的是 md and rst 查看 GitHub 文档和帮助页面后 我没有找到有关允许哪些文件类型的信息 我只是在寻找类型列表 以便我可以找出可以在下一个自述文件中使用哪些
  • AngularJS 与 Apache Tiles

    我在我的项目中使用 Spring MVC 和 AngularJS AngularJs 可以吗 routing和 ngView 被用来代替or与阿帕奇瓷砖框架 据我所知 使用 routing 和 ngView 我们创建模板并在单页应用程序中重
  • 使用 CSS2 将

    有没有一个好的跨浏览器解决方案来拆分单个 ul 分成两列 或者最好的方法仍然是使用两个相邻浮动的单独列表 我正在寻找单一的解决方案 因此如果需要替代 HTML 来支持旧版浏览器 则不允许使用 CSS3 优点 要求浏览器支持IE7 FF3 我
  • Elasticsearch 主分片不平衡

    我注意到我的 elasitcsearch 集群中有一个奇怪的行为 正如您在下面的屏幕截图中看到的 它显示了 kopf 插件 大多数主分片位于 nl 1 服务器上 我认为 elasitcsearch 在所有服务器上均匀地平衡了主分片 我错了吗
  • 如何反转 TextView 选取框的方向

    我想反转 TextView 中选取框的方向 默认情况下 文本从右向左移动 我希望它从左向右移动 我怎样才能做到这一点 我想出了一个非常简单易行的方法来做到这一点 我制作了一个选框效果 根据我们的选择向两个方向移动 所以 这里有一个技巧 我在
  • 在一项服务中引用多个 API 调用 (Angular)

    我正在通过 Angular http 请求访问 API 以收集不同足球队的信息 如果我只访问一个团队 那就没问题了 我将创建一个进行调用的服务 然后在我的控制器中引用该服务函数 但是 我希望在多个团队中执行此操作 而不必为每个团队创建单独的
  • 有没有办法调用需要 IEnumerable 且具有单个值的 C# 方法? ...通过基准测试[重复]

    这个问题在这里已经有答案了 我只是想知道我是否错过了一些语法糖或微优化 如果我调用一个需要 IEnumerable 值的方法 但我只有一个值 那么我将该单个值放入一个数组中 例如 var x 1 23 SquareAllTheNumbers
  • 在.NET Core中注入通用接口

    我想将此接口注入到我的控制器中 public interface IDatabaseService
  • 如何获取 Angular2 中元素的当前位置信息

    我有ElementRef我的导航栏 我试图找出它离我的窗口顶部有多近 这样我就可以让它粘起来 div class nav bar div ViewChild navBar navBarElement 我正在滚动事件中打印出它的 native
  • 如何确定 RecyclerView 最后一项在屏幕上可见?

    我有一个RecyclerView我将数据列表添加到RecyclerView 我想在列表中添加更多数据 最后一次RecyclerView项目在屏幕上可见 之后我想进行网络服务调用并更新RecyclerView数据 我怎样才能实现这个目标 有什
  • 有没有办法让控制台应用程序仅使用 .NET Core 中的单个文件运行?

    在 NET框架中 您可以制作一个 EXE将从命令行运行的文件 无需任何额外的配置文件 如果使用 ILMerge 您可以将所有 DLL参考文献1 EXE集会 我正在尝试使用 NET Core 来完成同样的事情 但到目前为止还没有成功 即使是最
  • 获取英汉对齐数据

    使用 TranslateArray2 我能够获取我想要的大多数语言的对齐数据 但不能获取英语到中文 zh 的对齐数据 我怎么才能得到它
  • 如何在 Mac v 10.7.2 上安装/使用 php

    我是对使用 PHP 感兴趣的普通大学生 谁能告诉我 101 如何使用简单明了的语言在 mac 版本 10 7 2 上安装 启用它 我将感谢任何和所有的帮助 Cheers 无需安装 PHP 或 Apache 它们已随 Mac 10 7 一起提
  • ios中的过滤器数组检查多个属性

    我有一系列自定义对象 自定义对象看起来像这样 interface User NSObject property nonatomic strong NSString user Id property nonatomic strong NSSt
  • 调用 GCMRegistrar.register() 时泄漏 IntentReceiver 错误

    我正在尝试完成以下入门步骤谷歌的GCM http developer android com guide google gcm gs html来自 Google 的 Android 开发者网站 当我的设备尝试注册时 由于以下原因而失败 Ac
  • 在 emacs 中移动区域或行

    我正在 emacs 中寻找一种将文本向右或向左移动的方法n空间 与 vim 中类似的功能 lt lt or gt gt 它应该在一个区域上工作 或者如果当前行上没有选择任何区域 并且不会将光标从当前位置移动 解决方案来自Emacs维基 ht
  • 如何用PHP显示分层的“NESTED SET”数据?

    我试图弄清楚如何使用 php 显示嵌套的 MySQL 数据 我已经设法搁置所有 叶节点 但后来我陷入困境 我需要显示一整棵树及其所有元素的关系 这是表格 category id name lft rgt 1 Saws 1 12 2 Chai
  • 如何从 puppeteer-sharp 中获取可读的浏览器/页面错误?

    我正在使用 puppeteer sharp 将某些页面呈现为 PDF 我想知道页面在浏览器中运行时渲染时是否存在任何问题 因此我设置了一些事件处理程序 page Error sender args gt logger LogCritical
  • 如果我不使用 multer,ExpressJS 请求正文为空

    我的 Express 应用程序遇到了这个非常奇怪的问题 我只想访问通过表单数据通过发布请求发送的 req body 数据 但不幸的是 当我尝试访问 request body 中的这些值时 我收到未定义的错误 但是什么是奇怪的是 如果我使用