一尘不染

如何处理Express 4中的FormData

node.js

我尝试将一些表单数据发送到我的节点服务器,但是req.body在节点侧没有任何表单字段

 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


阅读 763

收藏
2020-07-07

共1个答案

一尘不染

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);
});
2020-07-07