【node.js】Express+EJS使い方メモ1 EJSを読み込む


node01

こんにちは。さがっとです!

WEBアプリを作成できる。
を目標にnode.jsについて学習したことをメモしていきたいと思います。

前回まで、ejsテンプレートエンジンの使い方を学習していましたが、そろそろnode.js単体では実装が複雑になってきたので「Express」を導入したいと思います。

Expressは、npmを使ってインストール済みです。

やりたい事

とりあえずEJSを読み込んでみます。

今回の構成

Express

■「node_modules」フォルダ

Expressインストール時に作成される。Expressのファイルが保管されているところ。今回はEJSもインストールしたので、「ejs」フォルダも格納されている。

■「views」フォルダ

このフォルダ内に「test.ejs」を作成する。

Expressでは、画面表示のテンプレートを「views」フォルダに格納する決まり。(設定で変更可能)

■app.js

スクリプトファイル

■pacage.json

projectのpackageを管理するためのファイル。
mavenで言うところのpom.xml。
node.jsのlibraryを公開する時のファイルなので、しばらくは弄らない。

各テンプレートファイル

まず、test.ejsを「views」フォルダに用意。

test.ejs(表示用のテンプレート)

<%=title %>と<%-content %>にスクリプトファイルで用意したデータを書き出す。

スクリプトファイル

app.js

★1 Expressのライブラリをロード

Expressの機能を使用するため、Expressのライブラリをロードする。

★2ExpressのApplicationオブジェクトを作成しておく

続けてexpress()関数を呼び出し、Expressアプリケーションであるappオブジェクトを作成しておく。

★3EJSのロード

EJSのライブラリもロードする。

★4 テンプレートエンジンの設定

appオブジェクトの「engine」メソッドを使うことでテンプレートの設定ができる。

コールバック関数には、ejsオブジェクトのrenderFileプロパティを設定する。

★5GETを登録する

appオブジェクトの「get」メソッドで、HTTPのGETによるアクセスの登録ができる。

第1引数のパスにアクセスがあったとき、第2引数の関数を呼び出し実行する。

第2引数のコールバック関数では、requestとresponseのオブジェクトがそれぞれ引数として渡される。

 

★6 テンプレートファイルのレンダリング

responseオブジェクトのの「render」メソッドでテンプレートファイルのレンダリングができる。

第2引数はテンプレートに渡す変数などの情報を連想配列で記載する。(キーにejsのタグ名、値に入れ込むデータを記載)

テンプレートファイル名は「./views」からパス名を書く必要はない。

★7 指定のポート番号で待ち受け状態を開始

appオブジェクトの「listen」メソッドで、指定ポート番号の待ち受け状態を開始できる。

第二引数にコールバック関数を記載することで、リッスン開始後の処理を用意しておくことができる。

 

動かしてみる

コマンドプロンプトでスクリプトファイルを起動。

http://localhost:3000へアクセス。

Express

 

Expressを利用するメリット

やはりフレームワークを使うと、実装が短くすんで楽だなぁ。

ただ、実際にフレームワークが何をやってくれているのかを知っておくことは重要だと再認識。

Expressを利用して実際に楽になったこと

1.テンプレートファイルのレンダリング→書き出しが楽

以前、Expressを利用せずにテンプレートエンジンを読み込んでいた時はテンプレートファイルのレンダリングと書き出しを分けて書いていましたが、今回は一回の処理で完了している。

2.ルーティングが超楽

前回、HTTPメソッドを見分けるためにrequestオブジェクトの「method」を取得して、if文でPOSTや、GETの処理を分けて書いていました。そのようなルーティング処理は今回必要無し!

 

 

この記事がお役に立てたら、是非シェアをお願いします^^