Server & Node


Achievement Goals
HTTP(共通)
ブラウザでHTTPリクエスト/レスポンスを表示し、その内容を読むことができます.
HTTPの様々なリクエスト方式やレスポンスコードが理解できる.
node.jsモジュールの使用
node.jsの内蔵httpモジュールを使用できます.(mini node server)
node.jsの内蔵fsモジュールを使用できます.(optional) (chatterbox server)
httpモジュールを使用する場合、サーバにCORSを設定できます.(mini node server)
CommonJSを使用してモジュールをエクスポート/ロードできます.(chatterbox server)
ルーティングとAPI
ルーティング(条件分岐)を理解し、サーバコードで実装します.(mini node server)
クライアントが使用できるように、サーバAPIドキュメントを直接作成できます.(chatterbox server)
Expressライブラリエクスペリエンス(Refactor Express)
expressライブラリがどのタスクを簡単にするか理解できます.
ミドルウェアの概念が理解できます.
サーバ開発とデバッグ(chatterboxserver)
サーバの開発を支援するさまざまなツールを学ぶことができます.
nodemonの使用
inspectオプションを使用してデバッグ
Node.js
V 8エンジンで構築されたJSランタイム.
イベント:ユーザーのボタンをクリックしたり、ネットワークにリソースを要求したりします.

  • ブロックと非ブロック:同期非同期処理

  • I/OモデルI/OモデルI/OモデルI/OモデルI/OモデルI/OモデルI/OモデルI/OモデルI/OモデルI/OモデルI/OモデルI/OモデルI/OモデルI/Oモデル

  • Node core modules:Nodeにバインドされたモジュール.

  • npm initで梱包します.jsonを作成し、プロジェクトを開始します.

  • 依存項目がインストールされている場合--save
    dev-dependenceをインストールする場合は、他の-devオプションを指定します.
    インストールがdefaultの場合は-g(global)を使用してインストールします.
  • npm install @babel/core --save-dev / -g 
    HTTP
    サーバとクライアントは、主にHTMLなどのドキュメントのプロトコルを交換するために使用されます.主にTCP/UDP 80ポートを使用します.
    URI=HTTPリクエストはURIで行うことができ、「アドレス」ウィンドウで行うすべてのリクエストはget requestである.
    サーバの作成
  • HTTPモジュールロード
    httpドライバに必要なモジュールを取得します.
  • const http = require('http');
  • サーバの作成
    httpオブジェクトの「createServer」メソッドを呼び出してサーバを作成します.パラメータとして、クライアントとの通信により、受信クライアントの要求オブジェクトと応答オブジェクトが受信される.
  • let server = http.createServer(function(request, response){ // 요청, 응답, 에러 등을 처리.
    }).listen()
    
  • 要求処理関数の設定
    クライアントからリクエストを受信した後、応答としてどのように処理するかを設定する関数です.2番サーバの作成時に内部関数として設定します.

  • request:最初のパラメータとして渡され、http.IncomingMessageという名前のオブジェクトからクライアントリクエストの機能をまとめています.

  • response:2番目のパラメータ、http.サーバ応答オブジェクトからクライアントへの応答をサーバから返す機能を整理しています.
  • 要求処理設定
    「on」はhttpでイベント処理を指定する方法で、最初のパラメータはイベント名を指定し、2番目のパラメータは関数を指定します.
  • request.on('이벤트명', () => {
    })
  • Header情報のエクスポート
    「writeHead」メソッドはresponseでheader情報を設定し、最初のパラメータはステータスコードを指定し、2番目のパラメータにはheader情報が含まれます.
  • const defaultCorsHeader = {
    'Access-Control-Allow-Origin': '*',
    Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
    'Access-Control-Allow-Headers': 'Content-Type, Accept',
    'Access-Control-Max-Age': 10
    }; // CORS 가능하다는 설정을 변수에 지정하여 하기 method에 삽입. 
    
    response.writeHead(200, defaultCorsHeader);
    
  • 応答のエクスポート
    「write」はbodyセクションを作成およびエクスポートする方法です.引数に指定した値はbodyによって作成されます.複数回呼び出すことができます.
  • res.write('Hello World\n');
  • 応答出力が完了しました.
    コンテンツのエクスポートが完了すると、応答を呼び出すendメソッドが出力を完了します.パラメータとしてエクスポートされる内容を指定できます.この方法では、応答処理を終了し、要求処理を完了します.
  • response.end(JSON.stringify(body.toLowerCase()));
  • 待機
    2番目のサーバオブジェクトを準備したら、listenメソッドを実行して待機状態にします.クライアントに要求がある場合は、それを受信して処理できます.1番目のパラメータはポート番号、2番目のパラメータはホスト名、3番目のパラメータはbacklog、4番目のパラメータはcallback関数です.普通は1つ目だけ指定すれば十分です.
  • server.listen(5000) 
    
    혹은 
    
    server.listen(PORT, ip, () => {
    console.log(SashaInSPb);
    });
    araikumaのブログを参照してください