よく使い方を忘れるので、必要な時にサッと読み返せるように超完結にまとめておきます。
勉強中の関連記事まとめ
自分用の勉強記事をまとめた目次 ~擬似知識体系~
#この記事の用途
Node.jsのフレームワークを勉強するとき、公式チュートリアルのサンプルコードをコピペしてlocalhost接続して動作確認する。その後でコードの意味を分析するためにはJavaScriptが読めなくてはならない。でも0から勉強し直すほど心の余裕もないので、出会ったコードの意味から理解していこうという企画。
#Express.jsで出会った
const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello World!'))
app.listen(3000, () => console.log('Example app listening on port 3000!'))
参考文献
Hello World の例
###【サンプルコード解読】const
定数宣言。定数なので値の更新はできない。
const 定数名 = 値;
expressのサンプルコードでは、express
という名の定数にexpress
という名のjsモジュールを読み込んでいる。
const express = require('express')
ちなみに、モジュールとはシステムを構成する機能的にまとまった部分を意味するもので、つまりは外部ファイルを読み込むこと。
###【サンプルコード解読】require
モジュール化されたJavaScriptファイルを読み込む。通常はjsライブラリを読み込むには<script>
タグでHTMLに記述するが、サーバーサイドでjsを実行する際は<script>
タグが使えない。そこで、jsファイルをモジュール化してrequire
で読み込んで実行するという手法を取る。
const 定数名 = require( モジュール名 );
require
の引数にモジュール名を指定する。読み込んだモジュールが定数に格納される。jsのインスタンスを作成する感覚に近い。
###【サンプルコード解読】express()
const app = express()
require
で読み込んだexpress
という名のjsモジュールをapp
という名の定数に格納している。
###【サンプルコード解読】app.get()
app.get('パス', ミドルウェア関数)
JavaScriptのget()
メソッドとは、サーバーと通信して任意のデータを取得するメソッド。
定数app
には定数express
の中に入れたexpress
モジュールが入っていて、
###【サンプルコード解読】'/'
このルートパスは、これが記述されているファイルからの相対パスのこと。つまりindex.js
の中で記述されている場合はhttp://localhost:3000/
のこと、about.js
の中で記述されている場合はhttp://localhost:3000/sbout
のことを指す。
###【サンプルコード解読】(req, res)
###【サンプルコード解読】=>
アロー関数。function
のリテラルを省略したもの。
var v = function(f){
return f + 1;
};
{}
を省略し、アロー関数で書き直す。
var v = (f) =>
つまりExpressのサンプルコードの
app.get('/', (req, res) => res.send('Hello World!'))
は
app.get(`/`, function(req, res){
res.send("Hello World!");
}
というコードを省略しているということになる。
よって、定数appに入っている定数expressに入っているexpressモジュールのルートパスにある...
get()メソッドで取得している。
###【サンプルコード解読】res.send('Hello World!'))
send()
はサーバーにHTTP応答を送信するメソッド。bodyパラメータを渡す。
res.send([body])
リクエストに対してHello World
という文字列を渡している。
###【サンプルコード解読】app.listen()
listen
メソッドは、サーバーを待ち受け状態にしてクライアントからリクエストがあれば受け取って処理するためのもの。第一引数にはポート番号を渡す。第二引数にはコールバック関数などを渡す。
app.listen(ポート番号, コールバック関数)
app.listen(3000, () => console.log('Example app listening on port 3000!'))
参考文献
4.x API - app.listen(path, [callback])
Node.jsのスクリプトの基本を覚えよう (1/5)
###【サンプルコード解読】app.jsに記述されていること意訳
const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello World!'))
app.listen(3000, () => console.log('Example app listening on port 3000!'))
-
express
モジュールを定数express
に格納してapp.js
内で利用できる状態にする。 - 定数
app
にexpress
モジュールを格納する。 ??? -
console.log
の内容をポート3000で待ち受ける状態にする。