TIL#45ノード)HTTPとExpressモジュール


HTTPモジュール


HTTPという名前のノード.jsが使用するサーバモジュール.HTTP Webサーバのすべての関連機能を作成します.HTTPモジュールは、サーバオブジェクト、リクエストオブジェクト、およびレスポンスオブジェクトを使用します.
[サーバオブジェクト]
HTTPモジュールのcreateServer()メソッドを使用してサーバオブジェクトを作成します.
-方法
  • listen(port, callback):サーバを実行しクライアントを待つ.
  • close(callback):サーバーをシャットダウンします.
  • -イベント
  • request:クライアントがサーバを要求したときに発生したイベント
  • connection:クライアント接続時に発生したイベント
  • clientError:クライアントにエラーが発生した場合に発生するイベント
  • close:サーバー停止時に発生したイベント
  • [リクエストオブジェクト]
    クライアントがサーバに送信するメッセージ(情報)を含むオブジェクト.
    -属性
  • method:クライアント要求方式でGET、POSTを有する.
  • url:クライアント要求を示すURL.
  • ヘッダ:要求メッセージヘッダを示す.
  • [レスポンスオブジェクト]
    サーバからクライアントに応答メッセージを送信するオブジェクト.
    -方法
  • writeHead(statusCode, statusMessage, headers):解答用紙を記入する.
  • end(data, encoding, callback):回答本文を書く.
  • HTTPモジュール例

    http.createServer((req, res) => {
    
            res.writeHead(200, {'content-type':'text/html'});
            res.end('<!DOCTYPE html><html lang="en">
                    <head>
                      <meta charset="UTF-8">
                      <title>node.js</title>
                    </head>
                    <body>
                      <p>node.js 웹서버</p>
                    </body></html>');
    
        }).listen(3000, () =>{
            console.log('서버 실행중...');
            });

    Expressモジュール


    ExpressモジュールもHTTPモジュールのようにサーバモジュールです.HTTPモジュールを使用してWebサーバを構成するだけで、多くの機能を独自に開発する必要があります.これらの問題を解決するために作成されたモジュールがExpressです.
    Expressモジュールはrequest、responseオブジェクトに追加されました.したがって,簡単なコードを用いてWebサーバの大部分の機能を実現し,ミドルウェアとルータを用いてWebサーバを容易に構成することができる.
    [リクエストオブジェクト]
    requestオブジェクトはHTTPモジュールに比べていくつかの新しい方法と属性があります.
    -属性
    params:ルーティングパラメータの抽出
    Query:要求パラメータの抽出
    ヘッダー:要求ヘッダーの抽出
    -方法header():要求ヘッダの属性の指定または抽出accepts(type):要求ヘッダの受入属性をチェックするis(type):要求ヘッダのContent-Type属性をチェック
    [レスポンスオブジェクト]
    requestオブジェクトにはHTTPモジュールよりも多くの機能が追加されています.
    -方法response.send(value):パラメータの資料型により、適切な形式で表示されます.response.json(value):JSON形式で戻る.response.jsonp(value):JSONP形式で戻る.reponse.redirect(status, path):Webページのパスを移動します.

    Expressモジュールの例

    const app = express(); // 생성자
    const port = 3000;
    
    app.get('/', (req, res) => {
      res.send('익스프레스 서버 테스트!');
    });
    
    app.listen( port, () => {
      console.log(`${port} 포트로 서버 실행중...`);
    });