Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

NodeJS express製のアプリのPOSTアクションでbodyがundefinedしか入らなくなった件

過去に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 }))

にできました