回答編集履歴
1
回答が一部のみだったので追記
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
|
+
ミドルウェアの扱い方が解説されています
|