

ruby では、テンプレート処理を行うにあたっては、 erb を用いるのがデファクトです。

nodejs で、同じようにテンプレート処理を行いたくなったとき、これが可能なライブラリは、何が一般的でしょうか?(そのようなものはありますか?)


CC BY-SA 4.0
2018-08-05T04:41:08.583
47250
2018-08-05T23:28:43.247
754
question
node.js
nodejs で erb のようなテンプレート処理が行いたい


Node.jsではEJSというものがあります。  
<http://www.embeddedjs.com/>

`npm`コマンドでインストールできます。  
<https://www.npmjs.com/package/ejs>


CC BY-SA 4.0
2018-08-05T09:02:23.217
47255
2018-08-05T09:02:23.217
5246
47250
answer


テンプレート(レイアウト)の拡張という点でいえば、[Nunjucks](https://mozilla.github.io/nunjucks/)が容易です。  
(EJSは、テンプレートの拡張が面倒だったと思います。)

以下のようにテンプレートを拡張できます。

### layout.html

[code]

    <body>
      <header class="main">header</header>
      <section class="content">
        <nav class="side_nave">navi</nav>
        <main>
           {% block main %}
           dummy
           {% endblock %}
        </main>
      </section>
    </body>
    
[/code]

### index.html

[code]

    {% extends "layout.html" %}
    {% block main %}
    This is the main contents
    {% endblock %}
    
[/code]

### index.htmlのレンダー結果

[code]

    <body>
      <header class="main">header</header>
      <section class="content">
        <nav class="side_nave">navi</nav>
        <main>
           This is the main contents
        </main>
      </section>
    </body>
    
[/code]


CC BY-SA 4.0
2018-08-05T12:37:10.187
47259
2018-08-05T12:37:10.187
29553
47250
answer


`nodejs`では、[pug](https://pugjs.org/api/getting-
started.html)、[handlebars](http://handlebarsjs.com/)
が比較的有名と思われますが、他にも沢山あってデファクトはないので、自分の好みで選択したらいいと思います。erbに構文が近いのは、EJSのようです。

また、最近人気急上昇中のフレームワーク [Vue.js](https://jp.vuejs.org/) がテンプレートとしても使え、Nuxt.js
と使ってサーバーサイドのアプリケーションを作成したり、VuePress
と使って静的サイトを作成することができます。新しいものが好きであれば使ってみると面白いと思います。


CC BY-SA 4.0
2018-08-05T23:28:43.247
47263
2018-08-05T23:28:43.247
15171
47250
answer