前回確認をしましたが、Node.jsはサーバーサイドのプログラミング言語です
これまでのコードでは特にサーバーに関係していませんでした
Node.jsはサーバープログラムそのものを開発します
といってもやはりよくわかりませんよね…
今回の記事では実際にWebサーバーを作成してみましょう
※ちなみに当然Node.jsですのでNode.jsをインストールしていないとエラーがでますので
まだの人はまず環境構築から準備しましょう!くわしくはこちらの記事へどうぞ
下が今回実行するコードです
httpを準備する
まずはhttpオブジェクトのロードを行います
httpというのはHyper Text Transfer Protocolの略で、クライアントとWebサーバーとの間で文書などの情報をやりとりする時に使われる通信手順(プロトコル)のことです。
最初の
const http = require(‘http’);
の一文でhttpオブジェクトのロードを行っています
requireというメソッドを利用しているのがわかると思います
Node.jsではオブジェクトをモジュールとして管理して、必要なモジュールをロードして利用します
そのモジュールのロードが行われているのがこの最初の一文です
書き方は
変数=require(モジュール名);
メソッドの引数にロードするモジュール名を入れます
これによって、ロードされたモジュールは変数にオブジェクトとして入力します
ちなみに変数名は通常ロードするモジュール名にします
そのほうがわかりやすいですよね
サーバーオブジェクトの作成
次にサーバーオブジェクトを作成します
サーバープログラムを作るというのは具体的にいうと、つまり「サーバーオブジェクトを作成して実行する」ということです
それが次の一文です
server = http.createServer((request,response)=>{処理})
httpオブジェクトに用意されているcreateServer()メソッドを使うことでサーバーオブジェクトが作成できます
Javascriptを勉強してきた人はよく見る形ですね
そうですcreateServer()メソッドの引数にはアロー関数が使われています
ややこしいですのでちょっと分けます
server = http.createServer(関数)
関数の中身にアロー関数
(request,response)=>{ 処理}
アロー関数は二つの引数request,responseを持っています
requestがサーバーへのリクエスト(要求)で、responseがサーバーがそれを受けての返信です
これにより、サーバーに誰かがアクセスると、この関数が呼び出されて処理が行われるということです
レスポンスで処理をする
ということで、サーバーにクライアントからアクセスがあった場合に今回は
response.end(‘Hello world!’);
の一文で処理を行います
responseはこの形を見るとピンとくる人もいると思いますが
オブジェクトです
responseのendメソッドはその名前の通り、返信を終了するというメソッドです
引数にテキストがある場合はそれを出力して返信を終えることになります
待ち受けの状態
最後の一文
server.listen(3000);
で、作成されたサーバーオブジェクトをlisten()というメソッドで待ち受け状態にしてアクセスを待っています
引数には待ち受けるポート番号を指定します
ここでは3000番ということです
ここで作成されたサーバーはPC上のローカルサーバーです
ローカルサーバーへのアクセスは
http://localhost:3000というアドレスになります
実行する
http://localhost:3000にアクセス!
は気が早いです
先に実行をしましょう!
そうするとサーバーが「待ち受け」状態になります
何も動かないですが、ここでWebブラウザからアクセスしてみましょう
ということでうまくいきましたね
あとは、ずっとプログラムが動いたままですので停止をしておきましょう
ターミナルを選択した状態でCTRL+Cで中断できます
中断した後にもう一度アクセスしてみるとこうなりました
当たり前ですね・・・笑
YouTubeもよろしくね!
コメント