過去にNodeJS express製アプリのPOSTアクションを受け付ける処理を実装しました。
久しぶりに引っ張り出して動かしたところ……なぜかformからの内容がundefinedと空になって受け付けない事態に。
nodeJSなんて選択肢が無い時に使うもんで全く勉強が追いついておらず……さて、どうしたものか。
実際のところ
状況
- node : v12.22.8
- express : 4.18.2
POST bodyの中身がundefinedな時の対処法
POSTの中身を受け付けるbody-parser側でアップデートがあったのか何なのか
"bodyParser.urlencoded({ extended: true })"を明示したら治りました
const bodyParser = require('body-parser'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); // 今回の解決策
より現代的?な書き方
そもそもbody-parser自体の機能がexpressに取り込まれたらしく……
var express = require('express'); const bodyParser = require('body-parser') var app = express(); app.use(express.static('html')) app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true }))
だと
var express = require('express'); var app = express(); app.use(express.static('html')) app.use(express.json()); app.use(express.urlencoded({ extended: true }))
にできました