我try 向我的 node 服务器发送一些表单数据,但req.body在 node 端没有我的表单字段

 var express = require('express')
var app = express()
var path = require('path')
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({
  extended: true
}));

app.get('/', function (req, res) {
  res.sendFile('index.html')
})
app.post('/sendmail', function (req, res) {

  const formData = req.body.formData

这是我从浏览器发送的内容

fetch('/send', {
  method: 'POST',
  body: new FormData(form)
})

在开发工具中,我只看到在Referer中传递的数据,这可能是我的问题

推荐人:http://localhost:3000/?name=&budget=%C2%A31000

推荐答案

body-parser不处理多部分实体,这就是FormData的提交形式.

相反,使用multer这样的模块.

例如,要检索请求的(常规)字段:

const multer = require('multer');
const upload = multer();

app.post('/send', upload.none(), (req, res) => {
  const formData = req.body;
  console.log('form data', formData);
  res.sendStatus(200);
});

Node.js相关问答推荐

promise 所有映射或反对

如何使用NodeJS处理来自请求的单个或多个文件?

如何在Firebase Cloud Function v2计划函数中设置代码中的时区?

购物车是空的状态|本地存储不更新产品数量|Redux|

MongoDB-$Lookup未获得适当的结果

函数声明中的异步在没有等待的函数中做什么?

如何修复node.js中的错误代码无法加载资源:服务器响应状态为403(禁止)

mongoose findOneAndUpdate 不更新数据库

Fly.io 启动问题:无法从源获取图像或构建错误:构建错误:连接期间出错:发布...

图像存储在后端文件夹中,但使用 multer 和 react.js 在前端找不到

在 Atlas 触发器(Node JS)中正确初始化 Firebase 管理 SDK

Google Calendar API FreeBusy 外部用户

为什么在调用数据库调用时我的参数没有定义?

使用 WebSockets 有服务器成本吗?

node.js 是否支持yields ?

什么使用/尊重 .node-version 文件?

如何可靠地散列 JavaScript 对象?

Node.js - 判断是否安装了模块而不实际需要它

为什么 Node.js 没有原生 DOM?

react-native run-android 无法识别