⚠️注意
この記事は雑な自由帳です
流れ
全体像の把握
Express
『HTTPリクエストを受け取り、どの処理を実行し、どのレスポンスを返すかを整理するNode.jsのフレームワーク』
Expressがやっていること
・サーバーを立てる( app.listen )
・JSONを読めるようにする( app.use(express.json()) )
・URLと関数を結びつける( app.post() )
Expressがやっていないこと
・シフトの中身を作る
・保存する
・成功、失敗を判断する
server.jsの役割
アプリの土台、設計担当
・Expressアプリを作る
・ミドルウェアを登録する
・ルーティングを紐づける
・listenする
shift.controller.js
リクエストとレスポンスの担当
・reqを受け取る
・seviceを呼ぶ
・成功か失敗かを判断する
・reqでレスポンスを返す
shift.service.js
処理、ロジック担当
・DBに保存する
・計算する
・判定する
・resは触らない
shift.repository.js
shiftテーブルに対するDB操作の窓口
・SQLを書く
express.json
JSON形式のリクエストを、JavaScriptで使える形に変換する仕組み
→ 呼び出すとミドルウェア関数が返ってくる
⚠️ 『express.json()』はその場でJSONを読む関数ではない
リクエストの流れ
①リクエストが来る
↓
②JSONを読む係が処理
↓
③『req.body』が完成
↓
④ルート処理が動く
app.use
ミドルウェア関数を渡す
リクエストが来たら必ず通る処理を登録する場所
.useの流れ
リクエスト
↓
use①(チェックポイント)
↓
use②(チェックポイント)
↓
.get / .post
↓
レスポンス
⚠️useは「実行」はしない
→ 「後で使うから覚えておいて!」とExpressに登録する
→ reqが来たら実行される
// JSONを読むミドルウェアの作成
app.use(express.json());
ミドルウェア
Expressにおけるミドルウェアとは、リクエスト(req)、レスポンス(res)を中心とした関数を指す
ブラウザでの操作をしてhttpリクエストを送信時、Expressがブラウザから来たhttpリクエストを受け、何らかの処理を実行してレスポンスを返す
つまりミドルウェアは、要求と応答との間で何らかの処理を実行する仕組みを担っている
DB
全件取得の流れ
①取得処理は「DBに問い合わせて配列で返す」
②エラー処理の型を決める
・エラーメッセージ+500
・200+JSON
③非同期で書く
応用
①条件検索(Where)
条件検索
「作成結果」を成功レスポンスに反映
createPool()とcreateConnection()
query()とexecute()
query()
引数
pool.query(sql, values);
execute()
引数
pool.execute(sql, values);
戻り値
Promise版は配列
const [rows, fields] = await pool.execute(sql, values);
rows
SQLの戻り値をJavaScriptの配列にしたもの




