没有在快递(节点)的 PATCH 方法中接收表单数据

Posted

技术标签:

【中文标题】没有在快递(节点)的 PATCH 方法中接收表单数据【英文标题】:Not receiving form-data in PATCH method in express (Node) 【发布时间】:2020-10-06 04:45:44 【问题描述】:

当我选择raw 并发送 json 时,将数据发布到工作正常的端点。

当我选择 form-data 时,我没有收到任何东西。我已经在我的server.js 中定义了它们。

server.js 配置:

const express = require("express");
const bodyParser = require("body-parser");
const cors = require("cors");
const app = express();
var corsOptions = 
  origin: "http://localhost:8081"
;

app.use(cors(corsOptions));
app.use(express.static('app/uploaded'));
// parse requests of content-type - application/json
app.use(bodyParser.json());
// parse requests of content-type - application/x-www-form-urlencoded
app.use(bodyParser.urlencoded( extended: true ));

这是邮递员的请求。

【问题讨论】:

您发送的是 POST 请求吗?它说那里有补丁 这能回答你的问题吗? Postman Chrome: What is the difference between form-data, x-www-form-urlencoded and raw我想你想要 x-form-urlencoded。 @d9ngle 我的错,更新了 @O.Jones x-form-urlencoded 工作正常。我将通过此请求发送文件,因此我需要使用 form-data 进行测试 【参考方案1】:

您好,要解析不同形式的数据,您必须添加不同的中间件才能访问它

这里是解析响应的代码:

var express = require('express');
var bodyParser = require('body-parser');
var multer = require('multer');
var upload = multer();
var app = express();

// for parsing application/json
app.use(bodyParser.json()); 

// for parsing application/xwww-
app.use(bodyParser.urlencoded( extended: true )); 
//form-urlencoded

// for parsing multipart/form-data
app.use(upload.array()); 

请参阅this doc 以获取有关带有表单数据的正文解析器的更多详细文档

如果有帮助请告诉我

【讨论】:

没错,处理多部分表单数据,表达需求multer @O.Jones 它已经在接收表单数据的类中 @DanyalSandeelo 是的,但你能不能试试这个,因为有时你必须将它作为中间件传递

以上是关于没有在快递(节点)的 PATCH 方法中接收表单数据的主要内容,如果未能解决你的问题,请参考以下文章

您将如何手动触发将错误从节点快递记录到哨兵?

带有表单日期 c# 的 PATCH 请求

快递js表单数据

Vue的patch过程解析

在节点+快递+玉中将对象传递给客户端?

节点,快递 - 无法获取路线