nodeJSのメモ帳です。
764 views
<% msg %>
と書いたときは、msgはjavascriptだよ、ということを意味している。
htmlには何も表示されない。
<%= msg %>
と書いたときは、msgの値をhtmlに出力する。
サニタイジングもやってくれる。大抵はこれを使う。
<%- msg %>
と書いたときは、msgの値をhtmlに出力する。
ただ、上と違ってサニタイジングは行わない。htmlなどをそのまま出力したいときに使う。
djangoはすべてのviewで共通に使用する部分をデフォルトレイアウトとして定義し、
必要な部分だけ編集できる。
expressでもできないのかというと、デフォルトではできない。
以下のパッケージをインストールする必要がある。
npm install express-ejs-layouts
インストールしたら、app.js内で次のコードを書く。
var expressLayouts = require('express-ejs-layouts');
app.use(expressLayouts);
次にlayout.ejsを作成する。
<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
    <link rel='stylesheet' href='/stylesheets/bootstrap/bootstrap.min.css' />
    <script src="/javascripts/boostrap/bootstrap.min.js"></script>
  </head>
  <body>
    <%- include('header') %>
    <div class="container">
      <%- body %>
    </div>
  </body>
</html>
そして<%- body %>に相当する部分をindex.ejsに書く。
        <% for(var i = 0; i < items.length; i++) { %>
          <p><% var record = items[i].record[0].colName %></p> 
          <p><%= items[i].record[0].value %></p>
          <% for(var j = 0; j < 3; j++) { %>
            <p><%= j %></p>
            <p><%= items[i].record[j].colName %></p>
            <p><%= items[i].record[j].value %></p>
            <p><%= items[i].record[j].update_date %></p>
          <% } %>
        <% } %>
すると、layoutが読み込まれて、bodyの部分にindex.ejsの内容が出力される。
index.ejsは例であり、実際はrenderに指定するファイル名を指定する。
index.jsで呼び出しているres.render。
res.render('index', { title: 'Express', items: documents, test:documents[0]['_id'] });
Page 8 of 13.
        
         
                         
                    
すぺぺぺ
                    
                    本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
                    
                
https://www.osumoi-stdio.com/novel/