Node.js httpを使用したサーバの作成


これはexpressモジュールを使用せずにhttpを使用してサーバを作成するための努力です.

サーバの作成


Node.js公式ドキュメントのhttp使用例.
const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, World!\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

-createServerを使用したサーバーの作成


createServerを使用してサーバを作成できます.
ステータスコードはstatusCodeによって200と定められている.
200は、サーバが要求を正常に処理したことを示す.
setHeaderでタイトルを設定します.res.setHeader('Content-Type', 'text/plain');は、コンテンツタイプがテキストであることを示す.
endによって応答を終了します.

-listenを使用してサーバーを待機


このパスにlistenで接続する場合は、サーバの応答を待ってください.

ルーティングの処理


expressを使用する場合はget()で要求をパス処理できますが、HTTPのみでサーバを構築する場合はif文で要求を直接処理する必要があります.
ルーティングを簡素化します.
const http = require('http');
const fs = require('fs');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  if(req.url == '/'){
    res.writeHeader(200, { 'Content-Type', 'text/html' });
    res.end(fs.readFile('/index.html'));
  }else{
  
  }
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, World!\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
実際の開発では、上記の方法を1つのファイルに配置し、ルーティングに関連するコードを個別に作成および削除することが望ましい.

-HSTPメソッド処理


上記ルーティング処理でHTTPメソッド(POST、GETなど)を処理する場合、if文はさらに複雑になる.
エラー処理も必要で、追加すると大変なことになるかもしれません.

-静的ファイル


上記のコードではhtmlのみを送信していますが、実際には、Webサイトに戻るには、htmlやcssやjsなどの静的ファイルを送信する必要があります.
expressには静的ファイルを提供する機能がありますが、expressを使用しないため、コンテンツタイプが各ファイルに適しているようにコードを書く必要があります.
に示すように.

の最後の部分


Node.js expressではなくhttpでWebサーバを開発したいだけです.しかし、これは私が初めて勉強したので、速度が遅すぎたので、ルーティング処理であきらめました.現在のルートは反応器方向に発展しているが,今後はルーティング処理を自ら開発したい.私たちが得た知識と経験は今後の旅に役立つと信じています.