UNPKG

makemehapi

Version:

Self guided workshops to teach you about hapi.

69 lines (52 loc) 2.39 kB
'`/?name=Handling`'というリクエストに対し、テンプレート(`templates/index.html`)を 使ってレスポンスするサーバーを作ります。このテンプレートは以下のHTMLを出力します。 ```html <html> <head><title>Hello Handling</title></head> <body> Hello Handling </body> </html> ``` ----------------------------------------------------------------- ## ヒント このエクササイズでは、`vision`モジュールが必要となります。これはhapiのプラグインで、 テンプレートを処理するためのものです。このモジュールを使用するためには、下記のように コード中でプラグインを登録する必要があります。 ```js var Vision = require('vision'); await server.register(Vision); ``` ハンドラのviewキーを使用し、レスポンスの生成に使用するテンプレートを指定します。 ```js handler: { view: "index.html" } ``` サーバーメソッド'`server.views()`'を使い、サーバー中にあるテンプレートの 設定を行うことが出来ます。このメソッドは設定オブジェクト(configurationオブジェクト) を引数にとります。このオブジェクトで以下を設定することが出来ます。 * 各ファイル拡張子に対する、テンプレートエンジン * テンプレートファイルのあるディレクトリへのパス ```js server.views({ engines: { html: require('handlebars') }, path: Path.join(__dirname, 'templates') }); ``` このエクササイズではHandlebarsを使用します。以下のコマンドでHanlebarsを インストールすることが出来ます。 ```sh npm install handlebars ``` Handlebarsテンプレートを使用することにより、HTML中に変数を直接書くことが 出来ます。変数は2重の中括弧で囲む形式で記述します。(例: `{{foo}}`) テンプレートはリクエストから情報を得ます。例えばURLを通じて渡される クエリパラメータです。このクエリパラメータは`query`オブジェクトとなり、 テンプレート中で利用可能となります。クエリパラメータは自動的に解釈・処理 されます。ルートの'`path`'で宣言は行いません。 ```html <div>{{query.paramName}}</div> ```