56

我尝试将一些表单数据发送到我的节点服务器,但节点端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

4

1 回答 1

121

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);
});
于 2016-06-04T15:23:03.793 回答