템플릿 만들기

3545 단어 Node.jsExpress.js

먼저


지난번에는 생http로 만든 서버 쪽이었는데, 이번에는 템플릿을 사용하고 싶어요.
express.js 사용

사전 준비


다음 명령 express를 실행합니다.설치 js
npm install express --save

사진 사이트 만들기


목표는 사진 공유 사이트를 만드는 것이다
이번에 사진의 구조를 보여줍니다.

서버 측 생성


하고 있는 일로img 디렉터리에 있는 jpg 파일을 모두 가져와 템플릿에 건네줍니다

// ①HTTPサーバを作成するための必要
const express = require("express");
let app = express();
// ディレクトリ読み込み用
let fs = require('fs');

const IMG_PATH = 'img/img/';

// テンプレートエンジンの指定
app.set("view engine", "ejs");
// 静的ファイルを読み込めるようにする
app.use(express.static('css'));
app.use(express.static('img'));


app.get("/", function(req, res) {

  let fileList = [];
  try {
    // img配下のファイルをすべて読み込む
    let files = fs.readdirSync(IMG_PATH);
    // jpgの画像を絞り込む
    files.filter(function(file) {
      return fs.statSync(IMG_PATH + file).isFile() && /.*\.jpg$/.test(file); //絞り込み
    }).forEach(function(file) {
      fileList.push(file);
    });
    let data = {
      items : fileList
    }
    console.log(data);
    // レンダリングを行う
    res.render("./index.ejs", data);
  } catch (err) {
    // 読み込めない場合エラー画面に繊維
    console.error(err);
    res.render("./error.ejs");
  }
});

// サーバ実行
app.listen(8081);

템플릿 만들기


・index.ejs

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <title></title>
  <header class="header">
    <!-- タイトルとヘッダ画像の挿入 -->
    <h1>写真投稿サイト</h1>
    <div class="header-img"><img class="img-header" src="header/header.jpg" alt="" />

  </header>
  <!-- UIkit CSS -->

  <link rel="stylesheet" href="style.css" />
</head>

<body>
  <!-- 共有する写真のパスを渡して全部表示する -->
  <%- include("./item.ejs", items) %>
</body>
</html>
・item.ejs

<div>
<p>写真一覧</p>

<!-- 横スライドショーで表示 -->
<ul class="horizontal-list">
  <% for (let item of items) { %>
    <li class="item">
      <!-- クリック時は正規のファイルをダウンロードさせる -->
      <a href="img/" download="img/">
        <!-- 画面に表示するのは小さくした画像(容量削減のため) -->
        <img src="img_mini/s" alt="s">
      </a>
    </li>
    <% } %>
</ul>

※写真全部で2G超えています。取得時はwifi環境で実施してください。
 また、zipファイルのためダウンロード前に解凍環境を確認してください
<a href="136-231570-335954_photo_l_part1_of_2.zip" download>一括ダウンロードその1</a><br>
<a href="136-231570-335954_photo_l_part2_of_2.zip" download>一括ダウンロードその2</a><br>


・style.css


## スタイル
/** ヘッダのスタイル*/
header h1 {
  font-size: 2.0rem;
  line-height: 1.5rem;
  background-color: #7CB342;
  padding: 0px 5%;
  color: #fff;
}


.horizontal-list {
  overflow-x: auto;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}

.item {
  /* 横スクロール用 */
  display: inline-block;
  margin: 16px;
  background: rgba(255, 0, 0, 0.4);
}

/** ヘッダの画像だけは横いっぱいに表示 */
.img-header {
  width: 100%;
  max-width: 100%;
  height: auto;
}

완성도


완성도.얼굴은 가리는 것이니 탓하지 마십시오

총괄하다


이런 느낌으로 잠시 전시용 사이트를 만들었다.
너무 쉬워요.
다음은 도메인을 취득하고 외부 공개를 예약하는 방법입니다.

좋은 웹페이지 즐겨찾기