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)
})

開発ツールでは、リファラーで渡されたデータしか表示されません。おそらくそれが私の問題です

リファラー: http://localhost:3000/?name=&budget=%C2%A31000

4

1 に答える 1

121

body-parserFormDataとして送信されるマルチパート ボディを処理しません。

代わりに、のようなモジュールを使用して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 に答える