TIL 211207


😹 Today


今日はHAの日
困難

しかし、私はやはりあなたがずっとあきらめないでずっと私を捕まえていることを賞賛します!


くじけないで元気を出して行こう
試験の後、第2節expressはもう一度復習した.明日もテストが出てくる部分.前回はやりかけで忘れてしまった
復習も進化していて、expressレッスンを始めたばかりの頃は何だったのか分かりませんでしたが、少し前に復習した時にYouTubeやブログなどを見て理解を助け、今日は公式文書を読んでいます.ほほほ、しかし公式の書類はいつも難しいです.
公式文書を熟知していて、欠点を選ぶのが得意で、仕事意欲があり、コミュニケーション能力が強く、開発が面白く、健康的な開発者になりたいです^^

👄 Expressミドルウェア


👊 MERN



MERN stackとは、MongoDB、Express、React、Nodeのこと.(JavaScriptエコシステムで人気の第4世代フレームワーク)
ここでExpressjsはノードです.js環境でWebサーバ、またはAPIサーバを作成するための人気フレームワーク.
Expressフレームワークはnpmでダウンロードできます.
Expressで実装したサーバはHTTPモジュールで作成したサーバとは異なる
1.ミドルウェアを追加するのは便利です.
2.独自のルーターを提供します. (npm install express-router)
  • ルーティング:メソッドとURL(/lower、/upperなど)を使用してブレークポイントを作成します.
    クライアントは、HTTPリクエストを特定のHTTPリクエストメソッド(GET、POSTなど)またはサーバの特定のURI(またはパス)に送信する.ルーティングは、クライアント要求の方法およびエンドポイントに基づいてサーバ応答を決定する方法である.
  • // 순수 node.js코드로 라우팅 구현
    const requestHandler = (req, res) => {
      if(req.url === '/lower') {
        if (req.method === 'GET') {
          res.end(data)
        } else if (req.method === 'POST') {
          req.on('data', (req, res) => {
            // do something ...
          })
        }
      }
    }
    //Express는 프레임워크 자체에서 라우터 기능을 제공한다. 
    
    const router = express.Router()
    
    router.get('/lower', (req, res) =>{
      res.send(data)
    })
    
    router.post('/lower', (req, res) =>{
      // do something
    })

    👊 常用ミドルウェア


    ミドルウェアを使用する場合は、次のようになります.
  • すべてのリクエストのurlまたはメソッドをチェックする場合、
  • POST要求等に含むペイロードを構築する場合(容易に取得したい場合)
  • .
  • すべての要求/応答にCORSヘッダを付ける必要がある場合、
  • 要求ヘッダにユーザ認証情報が含む場合、
  • .
    以下にmyLogerというミドルウェア関数の簡単な例を示します.
    next()をもう一度よく見てみましょう.なんだろう.
    var myLogger = function (req, res, next) {
      console.log('LOGGED');
      next();
    };

    👣 next()


    この関数を呼び出すと、アプリケーションの次のミドルウェア関数が呼び出されます.next()関数はNodeです.jsまたはExpress APIの一部ではありませんが、ミドルウェア関数に渡される3番目のパラメータです.ミドルウェア関数myLoggerはメッセージを印刷し、next()関数を呼び出してスタック内の次のミドルウェア関数に要求を渡すだけです.

    🖐 ミドルウェア関数をロードするにはappを使用します。use()を呼び出せばいいです。


    たとえば、ルートパス(/)にルーティングする前にmyLoggerミドルウェア関数をロードします.
    var express = require('express');
    var app = express();
    
    var myLogger = function (req, res, next) {
      console.log('LOGGED');
      next();
    };
    
    app.use(myLogger);
    
    app.get('/', function (req, res) {
      res.send('Hello World!');
    });
    
    app.listen(3000);
  • ミドルウェアのロード順序は重要であり、まずロードされたミドルウェア関数を実行する.
  • cf)nodemonオフ
  • npm install nodemon --save-dev
  • -devは開発モデルであり、ローカルでのみ使用されます.
    devコマンドとして使用できます
    参考資料
    -コードステータス
    -express公式ドキュメント
    - https://velog.io/@chy0428/Node-JS-Nodemon-%EC%84%A4%EC%B9%98