サーバを立ててみよう
実際にNode.jsを使いサーバを立ててみましょう。
準備
適当なディレクトリで、新しいディレクトリを作成してください。
$ mkdir node-server-tutorial
作成したディレクトリに移動してください。
$ cd node-server-turtorial
次に、npm
コマンドを用いてこのディレクトリをNodeのプロジェクトにします。
$ npm init -y
init
は initialize
の略で、初期化を表します。
プログラミングなどをやっているとたびたび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
以上。サーバが立ち上がりました。
とはいえ実感は湧かないと思うので、実際にアクセスしてみましょう。 ブラウザで以下のリンクを開いてください。
ブラウザの画面上に、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も変更する必要が出てきます。
第二引数の関数は、起動時に実行されます。