お寺ノート

2024年1月6日 (土) 13:12時点におけるShudo (トーク | 投稿記録)による版 (設計)

目次

models

リポジトリは複数のユーザーを持ち、ユーザーは複数のリポジトリを持つ 多対多

転送・起動

% DEBUG=otera-note:* npm run devstart
$ forever start bin/www

% rsync -r --delete ~/tera-note/ jq:/home/jq/tera-note/

h1= title p Welcome to #{title}

設計

セッションを使用することにはメリットとデメリットがあります。以下にそのいくつかを挙げてみましょう。

      1. メリット:

1. **簡単な実装:**

  - セッションは一般的に実装が簡単で、多くのウェブフレームワークやライブラリでサポートされています。特に小規模なアプリケーションにおいて、簡潔なコードでセッションを利用できます。

2. **セキュリティ:**

  - セッションは一般的にサーバーサイドで管理されるため、クライアント側で変更されにくく、セキュリティが向上します。特にセッションIDを安全に扱えば、不正なアクセスを抑制できます。

3. **一時的なデータ保存:**

  - ユーザーが一時的なデータを保持するのに適しています。たとえば、ログイン状態、ショッピングカートの内容など、セッションを使用することで簡単に管理できます。
      1. デメリット:

1. **サーバーの負荷:**

  - 多くのセッション実装ではサーバーサイドでのデータ管理が必要です。セッションデータが増えるとサーバーの負荷が増加する可能性があります。

2. **スケーラビリティの制約:**

  - セッションデータがサーバーサイドに保存されるため、複数のサーバーでアプリケーションをスケーリングする場合、セッションの同期が必要になります。これは管理が複雑になる可能性があります。

3. **データの保存場所:**

  - セッションデータがサーバーサイドに保存されるため、データの永続性が低いことがあります。サーバー再起動やセッションの有効期限切れなどにより、データが失われる可能性があります。

4. **クライアント側のストレージ:**

  - セッションIDをクライアントに保存するため、クッキーやLocalStorageを使用することがあります。これには一部のセキュリティ上の懸念が伴います。

セッションを利用するかどうかは、具体的なアプリケーションの要件と特性に依存します。セッションのメリットを最大限に引き出すためには、適切な実装とセキュリティ対策が必要です。

URL パラメータを使用することには、いくつかのメリットとデメリットがあります。

      1. メリット:

1. **簡易な実装:**

  - URL パラメータはクエリ文字列として直接指定できるため、実装が比較的簡単です。特に小規模なアプリケーションや単発の操作に適しています。

2. **ブックマークや共有:**

  - URL パラメータに情報が含まれるため、特定のページや状態に直接アクセスするためのブックマークやURLの共有が容易です。

3. **クライアントサイドでの変更が可能:**

  - クライアントサイドの JavaScript から簡単に URL パラメータを変更できます。これは、ユーザーが操作する対話型のページにおいて便利です。
      1. デメリット:

1. **セキュリティ上の懸念:**

  - URL パラメータにはセキュリティ上の懸念があります。特に機密情報やパスワードなど、公開されてはいけない情報を URL に含めるべきではありません。

2. **URL の複雑性:**

  - 多くのパラメータが必要な場合や、パラメータの組み合わせが複雑になると、URL が長く複雑になる可能性があります。これは可読性やメンテナンス性に影響を与えることがあります。

3. **ブラウザの制限:**

  - URL の最大長は制限されており、一部のブラウザでは制約があるかもしれません。長大な URL は正しく処理されない可能性があります。

4. **セッション管理が難しい:**

  - セッション管理が必要な場合、セッション ID を URL パラメータに含めることはセキュリティ上の問題があるため推奨されません。

5. **履歴管理:**

  - ページ遷移において、URL パラメータによる情報の履歴管理が難しい場合があります。

URL パラメータを利用するかどうかは、アプリケーションの要件やセキュリティ上の配慮によります。セキュリティが重要な場合や、複雑なデータ管理が必要な場合は、他の手段を検討する必要があります。

準備

バージョン確認

% node --version
v20.10.0
2023年12月20日現在、Node.jsの最新安定版はv20.10.0
% npm show express
express@4.18.2
2023年12月20日現在、Expressの最新バージョンは4.18.1
% npm install express-generator -g
% mkdir tera-note
% cd tera-note
% express --view=pug teranote
% cd teranote
% npm install
% DEBUG=teranote:* npm start
Express で Tailwind を使うには、以下の手順を実行します。

1. npm で Tailwind をインストールします。
2. Tailwind の設定ファイルを作成します。
3. Express アプリで Tailwind を有効にします。

### 1. npm で Tailwind をインストールする

Tailwind をインストールするには、次のコマンドを実行します。

```
npm install tailwindcss
```

このコマンドを実行すると、Tailwind がインストールされます。

### 2. Tailwind の設定ファイルを作成する

Tailwind の設定ファイルを作成するには、次のコマンドを実行します。

```
npx tailwindcss init
```

このコマンドを実行すると、`tailwind.config.js` ファイルが作成されます。

`tailwind.config.js` ファイルで、Tailwind の設定を変更することができます。

### 3. Express アプリで Tailwind を有効にする

Express アプリで Tailwind を有効にするには、次の手順を実行します。

1. Express アプリの `index.js` ファイルで、`tailwindcss` を `dependencies` または `devDependencies` に追加します。
2. `index.js` ファイルで、`tailwindcss` を `import` します。
3. `index.js` ファイルで、`express.static()` を使用して、Tailwind の CSS ファイルを読み込みます。

たとえば、次のコードのように `index.js` ファイルを変更すると、Tailwind が有効になります。

```javascript
const express = require('express');
const path = require('path');

const app = express();

// Tailwind CSS を dependencies に追加
// または
// Tailwind CSS を devDependencies に追加
app.use(express.static(path.join(__dirname, 'node_modules', 'tailwindcss', 'dist', 'tailwind.min.css')));

app.get('/', (req, res) => {
  res.send('Hello, world!');
});

app.listen(3000, () => {
  console.log('Server started on port 3000');
});
```

このコードを実行すると、Tailwind を使用してレンダリングされた、次の HTML が生成されます。

```html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Hello, world!</title>
  <link href="/tailwind.min.css" rel="stylesheet">
</head>
<body>
  <div class="text-center">
    <h1>Hello, world!</h1>
  </div>
</body>
</html>
```

### その他のオプション

Tailwind を Express で使用するときに、次のオプションを設定することもできます。

* `tailwind.config.js` ファイルで、`purge` オプションを指定すると、Tailwind で使用されていない CSS を削除できます。
* `tailwind.config.js` ファイルで、`content` オプションを指定すると、Tailwind で使用される CSS を変更できます。
* `index.js` ファイルで、`express.style()` を使用して、Tailwind の CSS を直接適用することもできます。