回答編集履歴

1

回答が一部のみだったので追記

2021/08/22 13:29

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -78,7 +78,7 @@
78
78
 
79
79
  「そうじゃねーよ!何で`req.body`がundefinedになるんだよ!」となると思います。
80
80
 
81
- これ解決せずにオプショナルチェイニング使ってundefinedが取れても何も嬉しく。
81
+ これ解決せずにオプショナルチェイニング使ってundefinedが取れても何も嬉しくないでしょう
82
82
 
83
83
 
84
84
 
@@ -107,3 +107,89 @@
107
107
  `body-parser`ライブラリは根幹部分から切り離されました。
108
108
 
109
109
  そして使いたい時にミドルウェアとして挿し込んでくれみたいな運用に変更されました。
110
+
111
+
112
+
113
+ ---
114
+
115
+
116
+
117
+ では[body-parser](http://expressjs.com/en/resources/middleware/body-parser.html)の簡単な解説と
118
+
119
+ ミドルウェアの使い方を説明します。
120
+
121
+
122
+
123
+ ```bash
124
+
125
+ # package.jsonファイルがあるディレクトリでnpmを使ってインストール
126
+
127
+ $ npm install body-parser
128
+
129
+ ```
130
+
131
+
132
+
133
+ 使い方は[body-parser](http://expressjs.com/en/resources/middleware/body-parser.html)のページ下部にあるExamplesを読めば3つのケースで紹介されていますが
134
+
135
+ 簡単にコードベースで記述します。
136
+
137
+
138
+
139
+ ```js
140
+
141
+ const express = require('express');
142
+
143
+ const bodyParser = require('body-parser');
144
+
145
+
146
+
147
+ const app = express();
148
+
149
+
150
+
151
+ // この一文を足せばOK、ただし全てのURLでパースする事になる
152
+
153
+ app.use(bodyParser.urlencoded({ extended: false }));
154
+
155
+
156
+
157
+ app.post('/update/:id',(req,res)=>{
158
+
159
+ connection.query(
160
+
161
+ 'update users set subject = ?,date = ?,time = ? where id=?',
162
+
163
+ [req.body.subject,req.body.date,req.body.time,req.params.id],
164
+
165
+ (error,results)=>{
166
+
167
+ res.redirect('/index');
168
+
169
+ });
170
+
171
+ });
172
+
173
+
174
+
175
+ // 適当に3000番ポートで実行
176
+
177
+ app.listen(3000);
178
+
179
+ ```
180
+
181
+
182
+
183
+ ここから色々と工夫出来ますが
184
+
185
+ 回答が無限に長くなるので参考記事を色々と貼って締めます。
186
+
187
+
188
+
189
+ - [サード・パーティー・ミドルウェア - Express公式ドキュメント](https://expressjs.com/ja/resources/middleware.html)
190
+
191
+ body-parserは今回の質問にダイレクトに影響しますが、認証システムに欠かせないセッションやクッキーも切り離されてミドルウェア運用する前提なのは覚えておきましょう
192
+
193
+ - [ミドルウェアの使用 - Express公式ドキュメントのガイド](https://expressjs.com/ja/guide/using-middleware.html)
194
+
195
+ ミドルウェアの扱い方が解説されています