今回はNode.jsでサーバーを実行する方法について書きたいと思います。アプリケーションを作成する方法はいろいろありますが、JavaScriptのフレームワークのnode.jsではnpmを使ってたくさんのモジュールを使用することができます。サーバーを実行させるモジュールもその一つです。Chrome(ブラウザー)InstallationNode.jsを使用する場合は予めNode.jsをインストールしておく必要があります。今回のNode.jsのバージョンは12.13.1を使います。Nodebrewを利用する場合は違うバージョンをお使いのマシンにインストールしておくことができます。Projectの作成コマンドからフォルダーを作成します。node-basicファイルを作成します。app.jsブラウザで確認すると下記の様にブラウザに表示させることができました。ターミナルを終了します。require('http')まずnpmモジュールであるhttpを呼び出しています。requireメソッドはNode.jsのモジュールローディングシステムを利用しています。Node.jsをインストールしたことで使えるシステムですが、あまり難しく考えるよりも、Node.jsの時に使用する方法だと理解すると良いでしょう。httpとはサーバーを用意するためのモジュールで、読み込むことでサーバーオブジェクトを作成したり、待ち受け状態にすることができます。サーバーは外部からアクセスされた時に必要な処理をして結果を返したり、誰かがアクセスしてくるまで待ち続けたりする機能があります。そのhttpを変数のhttpに格納して使用します。次にhttpを利用してサーバーオブジェクトを作成します。http.createServer(関数)とすることでhttpオブジェクトのcreateServerというメソッドを呼び出し、その中で処理を記述することができます。Node.js')})引数にreqとresとありますが、reqestとresponseの意味でクライアントからサーバーへのリクエストと、サーバーからクライアントへのレスポンスのそれぞれを実行するためにあります。サーバーのもつ機能を表している様なコードですね。何の処理が行われているのでしょうか。引数で渡されたresponseのendメソッドを呼び出してサーバーからクライアントへ返信しています。Node.jsのテキストが用意されてあると、そのテキストを出力して終了します。http.Serverオブジェクトを図で理解しよう下記の図の様にクライアントがサーバーにアクセスするとcreateServerで設定された関数が実行され、結果が返送されます。http.Serverオブジェクトサーバーの待ち受け状態server.listen(3000)listenメソッドはポート番号を受け取って待ち受けるメソッドです。http://localhost:3000とはアクセスする際のポート番号であり、listenは3000番で待ち受けているのです。HTMLを出力する簡単なテキストだけでなくHTMLを表示させてみましょう。app.jsを書き換えます。World</h1></body></html>')})server.listen(3000)今回はres.sendの引数に直接タグを埋め込んでいます。背景が白いので変かもしれませんが、この様にh1タグの書式で出力されます。次はheader情報を追加してみましょう。header情報はこの様に様々です。text/html!DOCTYPElangutf-8titleこれらheader情報を元にサーバーが必要な情報を返信し、確実な処理することができます。app.jsを書き換えてみましょう。res.end()})server.listen(3000)ブラウザで確認この様にheader情報を指定することでサーバーへどんな情報なのかを正確に伝えることができます。最後はres.endで終了していますね。まとめこの様にNode.jsでサーバーを実行することができました。httpモジュールを使ってサーバーオブジェクトを呼び出してサーバーを立てたり、クライアントからのリクエストやサーバーからのレスポンスを関数にし、その中で行いたい処理を記述しました。setHeaderメソッドを使ってheader情報を扱うこともしました。サーバーを用意し、処理を記述し、待ち受ける。この様な流れが掴むことができました。node.jsSNSでもご購読できます。*メールアドレス(公開はされません。*次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。プロフィール初学者からプログラミングをはじめて現在会社員エンジニアをやっています。事業や個人で学習した生のプログラミングの発進をしています。技術畑でありながら営業も得意としており、様々な業種の方とも交流をもっています。ITの社会基盤が当然の時代に突入した昨今、プログラミングの重要性に注目が集まっています。このblogではそんな日々の学びや業務の中で培われた情報をシェアできればと思っています。皆さんからもコメントをお待ちしております。