Postman无法向Express应用发送二进制文件,请求体为空如何解决?
Express请求体为空问题及Postman二进制文件发送指南
一、req.body为空的原因及解决办法
你配置的bodyParser.raw只对image/*类型的请求进行解析,如果Postman发送请求时的Content-Type不匹配这个规则,bodyParser就不会处理请求体,自然req.body就是空的。
解决步骤:
- 调整bodyParser配置(二选一即可):
- 若仅处理图片,确保Postman的Content-Type严格匹配
image/*(比如image/png、image/jpeg) - 若要支持任意二进制文件,修改type配置覆盖更多类型:
app.use(bodyParser.raw({ limit: '50mb', type: ['image/*', 'application/octet-stream'] }));
- 若仅处理图片,确保Postman的Content-Type严格匹配
- Postman端正确配置请求:
- 选择POST方法,填写接口地址
/test - 切换到Body标签,选中
binary选项,点击Select File选择要传输的文件 - 进入Headers标签,将
Content-Type设置为对应文件的MIME类型(比如图片用image/png,通用二进制用application/octet-stream)
- 选择POST方法,填写接口地址
二、Postman能不能发送二进制文件?
当然可以,具体操作步骤:
- 新建POST请求,填写目标接口地址
- 进入Body标签,选中
binary选项 - 点击
Select File,选择本地的二进制文件(图片、压缩包等都支持) - 配置请求头
Content-Type,确保和Express中bodyParser的type规则匹配 - 发送请求,此时
req.body就能拿到对应的二进制数据了
补充:如果是实际的文件上传场景,更推荐使用multer中间件,它专门处理multipart/form-data类型的文件上传,比raw模式更灵活。
内容的提问来源于stack exchange,提问作者TommyD
相关产品推荐
相关产品推荐

