[node.js express ejs] Q.ejsテンプレート

A.
express上でejsテンプレートを使ってロジック分離します。
レイアウトファイル: layout.ejs
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>TEST</title>
  </head>
  <body>
    <%- body %>
  </body>
</html>


レイアウトのbodyに挿入されるファイル: layout.ejs
<h3>SITE</h3>
<% if (site.length) { %>
  <ul>
    <% site.forEach(function(list){ %>
      <li><%= list.name %> : <%= list.url %></li>
    <% }) %>
  </ul>
<% } %>

<h3>BOOKS</h3>
<% if (books.length) { %>
  <ul>
    <% books.forEach(function(list){ %>
      <li><%= list.name %> : <%= list.url %></li>
    <% }) %>
  </ul>
<% } %>

プログラムから以下のようにテンプレートに値を渡します。
プログラム: app.js
var express = require('express'),
    ejs = require('ejs');

var app = express.createServer();

app.get('/test1', function(req, res) {
    res.render('test1.ejs', {
        locals: {
            site: [
                { name: 'yahoo!', url: 'http://www.yahoo.co.jp/'},
                { name: 'google', url: 'http://www.google.co.jp/'},
                { name: 'livedoor', url: 'http://www.livedoor.com/'},
            ],
            books: [
                { name: 'JavaScript', url: 'http://www.amazon.co.jp/dp/4873113296/'},
                { name: 'JavaScript > The Good Parts', url: 'http://www.amazon.co.jp/dp/4873113911/'},
            ],
        }
    });
});

app.listen(10001, '0.0.0.0');


ejs_1.png
参考サイト:
ejs