特集PC技術

サーバーサイドJavaScriptの図書室

 

2冊目 node.jsでejsを使う。

人気のある?ejs(Embedded JavaScript)テンプレートを使います。
定義をejsに書いておいて、jsで上書きすることができます。

目次

[1] 実験環境

今回の環境は以下のとおりです。

名前 バージョン
Ubuntu 14.04
node.js v0.10.28

node.jsは事前に準備しておきます。
node.jsの環境構築に関する記事はこちらから。

[2] ejsのインストール

ejsライブラリのインストールを行います。

$ npm install ejs

[3] ソースコードを書いてみる。

今回は簡単に画面に表示を行ってみます。
同じフォルダにファイルを2つ用意します。
同じフォルダに用意しなくても正しくパスが設定されて入れば動きます。

ejs_sample.ejs
<html>
<h1><%= title %></h1>
<p><%- content %></p>
</html>

<% XXXXXX %>の形式でejsファイルに記載します。
これを使うとファイルを読み込んだときに値を入れることができます。
上記の場合は[title]と[content]を用意しました。
[%=]や[%-]にもそれぞれ意味があります。
何の意味があるのかは次のソースコード内に記載してあります。

ejs_sample.js
// ライブラリ読み込み
var http = require('http'),
    fs = require('fs'),
    ejs = require('ejs');

// EJSテンプレート読み込み
var template = fs.readFileSync('ejs_sample.ejs', 'utf-8');

http.createServer(function(req,res){
    // ejsテンプレートで置き換える値を指定する
    var data = ejs.render(template, {
        // <%= >で書くとスケープ処理するのでタグをつけない
        title: "ほぷしぃへようこそ",
        // <%- >で書くとエスケープ処理しないのでタグが有効
        content: "ほぷしぃへようこそ",
    });
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    res.end();
}).listen(1337, '127.0.0.1');

console.log('Server running at http://127.0.0.1:1337/');
実行結果
実行結果

このような形にすることで、値が置き換わっているのがわかります。

[4] 更新履歴

日付 詳細
2014/06/12 新規作成

コメントの投稿


画像の中に見える文字を入力してください。

トラックバックURL

http://www.isl.ne.jp/cgi-bin/mt/mt-tb.cgi/1864

pagetopこのページの先頭へ戻る