nodeJSメモ帳

nodeJSのメモ帳です。

665 views

基礎

<% msg %>

と書いたときは、msgはjavascriptだよ、ということを意味している。
htmlには何も表示されない。

<%= msg %>

と書いたときは、msgの値をhtmlに出力する。
サニタイジングもやってくれる。大抵はこれを使う。

<%- msg %>

と書いたときは、msgの値をhtmlに出力する。
ただ、上と違ってサニタイジングは行わない。htmlなどをそのまま出力したいときに使う。

default layout

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/

ツイッター

@darkimpact0626