【Node.js】Node.jsで簡易的なサーバーを起動してみる
目次
今回はNode.jsを用いて、簡単なサーバーを構築から起動までの手順をやってみたので、ご紹介したいと思います。
サーバーとなると、少し小難しい感じがしますが、やってみたら楽しいですので、是非試してみてください。
Node.jsの概要と環境構築については前回の記事でやりましたので、ご参考ください。
【Node.js】Node.jsとは?概要と特徴、環境構築、Hellow World表示まで
https://www.dailyupblog.com/backend_development/913/
それではいきましょう。
必要ファイルの用意
Nodeをインストールしていない方はまず、Nodeをインストールしてください。
インストールは下記から、環境にあったものでお願いします。
次に、必要なフォルダとファイルを用意します。
「node-test」というフォルダを作成してください。
そして、このフォルダの中にserver.jsというファイルを作成してみましょう。
このserver.jsはサーバーの核となるスクリプトとなります。
サーバーの核となるスクリプトの作成
作成したserver.jsの中には以下のように記述してください。
const http = require("http");
const server = http.createServer();
server.on("request", function (req, res) {
res.writeHead(200, { "Content-Type": "text/plain" });
res.write("Hello");
res.end();
});
server.listen(8080, "127.0.0.1");
console.log("server listen...");
ひとつずつ説明していきます。
const http = require("http");
1行目の上記は、Nodeが用意しているhttpモジュールです。
このhttpモジュールは、HTTPサーバーやHTTPクライアントとしての機能を構築するために使われます。
このようにnodeでは、用意されているモジュールを必要に応じて、「require()」でインポートすることができます。
今回、httpサーバー構築に必要なモジュールでしたので、インポートしました。
const server = http.createServer();
上記は、このhttpモジュールで用意されている、createServer()メソッドを呼び出しています。
このメソットを使うことで簡易サーバーを構築することができます。
server.on("request", function (req, res) {
res.writeHead(200, { "Content-Type": "text/plain" });
res.write("Hello World");
res.end();
});
上記の部分は、createServer()メソッドで作ったサーバーで、リクエストが飛んできたら処理をするイベントを結びつけるという処理を書いています。
これには「.on」メソッドを用いて書きます。
第一引数にはリクエストが飛んできたら処理するということを明示するために「”request”」と入れています。
第二引数には、コールバック関数を入れています。
前回の記事でも書きましたが、nodeではノンブロッキングな書き方が推奨されていますので、コールバック関数で表しています。
引数にはリクエストである「req」とレスポンスである「res」を入れます。
今回は、サーバーに接続して、リクエストが飛んできたら、Headにメッセージを書き込むといった処理を書いてみました。
writeHead()メソッドを用いて、メッセージを渡します。
httpのステータスには成功の200を指定し、渡すコンテンツのタイプをテキストと指定します。
そして、write()メソッドでHeadにテキストを記述します。
最後にend()メソッドで終了です。
server.listen(8080, "127.0.0.1");
console.log("server listen...");
最後に上記の部分です。
ここではサーバーを待ち受け状態にします。
クライアントからリクエストがあればそれを受け取り処理するようになります。
第一引数にはポート番号を指定し、第二引数にはホスト番号をしてします。
そして、一応サーバーが待ち受け状態であることを表すためにも、コンソールで「”server listen…”」を表示させておきましょう。
これで準備は完了です。
サーバーを起動する
さて、いよいよサーバーを起動してみましょう。
まず、コマンドライン上で、「node-test」フォルダ内に移動しておいてください。
そして、下記コマンドでnodeを起動しましょう。
node server.js
これでサーバーが起動します。
コマンドライン上に「server listen…」が表示されていれば成功です。
試しにブラウザでアクセスしてみましょう。
ホスト番号「127.0.0.1」とポート番号「8080」を設定していたので、「http://127.0.0.1:8080」にブラウザでアクセスしてみてください。
そうすると、画面上に「Hello World」が表示されていれば、成功です。
これでサーバーを構築・起動する方法は以上になります。
設定を外部ファイル化する方法
さて、サーバー構築は関係ない内容ですが、便利なので、Node.jsで設定を外部ファイル化して取り込む方法をご紹介したいと思います。
ポート番号だったり、ホスト番号などは定数化して、別ファイルで管理したいと思います。
server.jsと同階層にsettings.jsファイルを作成してください。
このファイルには以下のように記述してください。
exports.port = 8080;
exports.host = "127.0.0.1";
変数の前に「export.」を付けることで、外部ファイルから取り込むことができます。
そして、server.jsを開いて下記のように修正してください。
const http = require("http");
const settings = require("./settings.js");
const server = http.createServer();
server.on("request", function (req, res) {
res.writeHead(200, { "Content-Type": "text/plain" });
res.write("Hello World");
res.end();
});
server.listen(settings.port, settings.host);
console.log("server listen...");
上記のように、「require」でsettings.jsをインポートしましょう。
そして、「settings.port, settings.host」のように記述すると、外部ファイルで定義した設定を使うことができます。
とても便利ですので、覚えておいて損はないと思います。
まとめ
いかがだったでしょうか。
今回はNode.jsでサーバーを構築・起動させる方法をご紹介しました。
今回ご紹介したのは、非常に基本的なサーバー構築の方法になります。
ともあれ、これでNode.jsでサーバーを起動させる感覚を実感できたと思うので、一歩前進です!
それでは今回はここまで!
お疲れ様でした。
以下、公式のサーバー構築の解説ページです。ご参考ください。
はじめての Web サーバー
https://nodejs.org/ja/docs/guides/getting-started-guide/