var ejs = require('ejs');最初にEJSのライブラリを読み込みます。これはrequire関数で「ejs」を引数に指定します。ここで取得されたejsオブジェクトを使ってテンプレートのレンダリングなどを行います。var hello = fs.readFileSync('./hello.ejs', 'utf8');fsオブジェクトを使い、テンプレートファイルを読み込みます。ここではreadFileではなく、「readFileSync」というメソッドを使っています。基本的にはreadFileと同じですが、非同期ではなく、同期処理で読み込みます。つまり、このメソッドを呼び出すとファイルの読み込みを行い、それが完了してから次に進む、というわけです。var hello2 = ejs.render(hello, {
title:"タイトルです",
content:"これはサンプルで作成したテンプレートです。",
});テンプレートのレンダリングを行うのが、ejsオブジェクトの「render」メソッドです。これは、整理すると以下のようになります。ejs.render( テンプレートデータ , オプション );第1引数――レンダリングする対象データ(=読み込んだテンプレートの文字列)を指定します。
res.writeHead(200, {'Content-Type': 'text/html'});最後に忘れてはいけないのが、writeHeadによるヘッダーの出力です。Content-Typeに「text/html」を設定します。これにより、レスポンスに書き出される内容がHTMLであることがわかります。※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
var http = require('http');
var fs = require('fs');
var ejs = require('ejs');
var hello = fs.readFileSync('./hello.ejs', 'utf8');
var server = http.createServer();
server.on('request', doRequest);
server.listen(1234);
console.log('Server running!');
// リクエストの処理
function doRequest(req, res) {
var hello2 = ejs.render(hello, {
title:"タイトルです",
content:"これはサンプルで作成したテンプレートです。",
});
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(hello2);
res.end();
}
| << 前へ | 次へ >> |