ノードサーバーにフォームデータを送信しようとしましたが、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)
})
開発ツールでは、リファラーに渡されたデータしか表示されません。おそらくそれが私の問題です
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);
});