nodeJSのメモ帳です。
666 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/