メインコンテンツまでスキップ

サーバを立ててみよう

実際にNode.jsを使いサーバを立ててみましょう。

準備

適当なディレクトリで、新しいディレクトリを作成してください。

$ mkdir node-server-tutorial

作成したディレクトリに移動してください。

$ cd node-server-turtorial

次に、npmコマンドを用いてこのディレクトリをNodeのプロジェクトにします。

$ npm init -y
備考

initinitialize の略で、初期化を表します。 プログラミングなどをやっているとたびたびinitに出会いますが、大抵の場合これです。

それではディレクトリの中身を見てみましょう。

$ ls

package.jsonというファイルができていると思います。 ここには、Node.jsのプロジェクトの名前などの情報や、使用するパッケージ(ライブラリ)とそのバージョンなどについて記述されています。

次に今回サーバを立ち上げるのに使用する expressというライブラリをインストールします。
ライブラリのインストールには npm install ライブラリ という感じでやります。
今回はexpressなので以下を実行。

$ npm install express

すると package.json の中の dependencies にexpressが追加されます。 dependenciesにはそのプロジェクトで使用されるライブラリが記載されていきます。

また他にも、node_modulesというディレクトリとpackage-lock.jsonというファイルが作成されているかと思われます。

備考

node_modulesにはインストールしたライブラリがダウンロードされます。
package-lock.jsonには「インストールしたライブラリが使用するライブラリ」についてや、細かいバージョンについてが記述されています。

どちらも人間が眺めるために作られている感じではないので、そういうものなんだなと思っておいてください。

これにて準備は終了です。次に実際にサーバを立てていきます。

れっつサーバ

先ほど作成したプロジェクトディレクトリをVSCodeで開いてください。

開いたら、index.jsというファイルを作成し、その中に以下のプログラムを記述してください。

const express = require("express")

const app = express()
app.use(express.json())

// エンドポイントの定義
app.get("/", (req, res) => {
console.log("'/' にリクエストを受け取りました!")

res.status(200).send("Hello world!")
})

// サーバの起動
app.listen(3000, () => {
console.log("サーバが起動したよ!")
})

記述したら次にターミナル上で以下を実行。

$ node index.js

以上。サーバが立ち上がりました。

とはいえ実感は湧かないと思うので、実際にアクセスしてみましょう。 ブラウザで以下のリンクを開いてください。

http://localhost:3000

ブラウザの画面上に、Hello world!と表示されていれば成功です。

また、ターミナルの方も確認してみてください。

解説

サーバが立ち上がったことは確認しましたが、プログラムがどのようになっているのかについて説明をば。

const express = require("express")

では、先ほどインストールしたexpressライブラリをrequire関数で読み込み、それをexpressという変数に格納しています。

const app = express()

expressのアプリケーションを作成しています。作成後、この後の行で設定を行い最終的に起動させます。

app.get("/", (req, res) => {
console.log("'/' にリクエストを受け取りました!")

res.status(200).send("Hello world!")
})

エンドポイントを作成しています。

エンドポイントのパスは"/"で、メソッドはGET。
リクエストを受け取ると、app.getの第二引数に渡した関数が実行されます。

app.listen(3000, () => {
console.log("サーバが起動したよ!")
})

アプリ(サーバ)を起動させます。
3000は使用するポート番号を表し、変更することで先ほどのhttp://localhost:3000の3000も変更する必要が出てきます。
第二引数の関数は、起動時に実行されます。