没有在快递(节点)的 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 方法中接收表单数据的主要内容,如果未能解决你的问题,请参考以下文章