How to Build a Basic CRUD App with Marko? A Step-by-Step Guide
このガイドでは、MarkoとBack4appを使用して完全なCRUD(作成、読み取り、更新、削除)アプリケーションを作成する手順を説明します。
このチュートリアルでは、Back4app上に「Basic-CRUD-App-Marko」という名前のプロジェクトを設定し、堅牢なデータベーススキーマを設計し、MarkoフロントエンドをBack4appのAPIと統合します。
このチュートリアルでは、バックエンドを保護し、アプリケーションを本番環境で展開する方法も説明します。
- 信頼性の高いバックエンドを使用してデータを効率的に管理するCRUDアプリケーションの構築方法。
- スケーラブルなスキーマを設計し、Markoベースのフロントエンドにリンクするためのヒント。
- データを簡単に管理するためのBack4appの使いやすい管理インターフェースの利用。
- ウェブアプリケーションを立ち上げるためのDockerによるコンテナ化を含む展開戦略。
始める前に、次のものを確認してください:
- Marko開発環境の設定。 Marko CLIまたはお好みの設定方法を使用してください。Node.js(v14以降)がインストールされていることを確認してください。
- Back4appアカウントにサインインします。
- ダッシュボードで「新しいアプリ」を選択します。
- プロジェクト名を入力します: Basic-CRUD-App-Marko と画面の指示に従ってください。

あなたの新しいプロジェクトは、バックエンドの基盤を築くために、Back4appダッシュボードに表示されます。
このCRUDアプリでは、いくつかのコレクションを作成します。以下は、実用的なデータベーススキーマを設計するための提案されたフィールドを持つコレクションの例です。
このコレクションは、各製品の詳細を保持します。
フィールド | タイプ | 詳細 |
---|---|---|
_id | オブジェクトID | 自動生成された主識別子。 |
名前 | 文字列 | 製品名。 |
詳細 | 文字列 | 製品の簡単な説明。 |
作成日時 | 日付 | 製品作成のタイムスタンプ。 |
更新日時 | 日付 | 最後の更新のタイムスタンプ。 |
このコレクションはユーザーと認証データを保持しています。
フィールド | タイプ | 詳細 |
---|---|---|
_id | オブジェクトID | 自動生成された一意の識別子。 |
ユーザー名 | 文字列 | ユーザーのためのユニークな名前。 |
メール | 文字列 | ユニークなメールアドレス。 |
パスワード | 文字列 | ユーザーのパスワードのハッシュ化されたバージョン。 |
作成日時 | 日付 | レコード作成タイムスタンプ。 |
更新日時 | 日付 | 最終変更タイムスタンプ。 |
これらのコレクションは、Back4appダッシュボードで新しいクラスを作成し、適切なカラムを追加することで手動で定義できます。

フィールドのタイプを選択し、カラムに名前を付け、デフォルト値を設定し、必要に応じて必須としてマークすることで、迅速にフィールドを追加できます。

Back4app AIエージェントは、プロンプトに基づいてコレクションとフィールドの定義を生成することで、スキーマ設計を簡素化します。この機能は時間を節約し、データベースの設定における一貫性を確保します。
- AIエージェントにアクセスする: Back4appダッシュボードに移動し、プロジェクト設定でAIエージェントを見つけます。
- スキーマを説明する: 必要なコレクションとフィールドを詳しく説明するプロンプトを提供します。
- レビューと実装: 生成後、提案されたスキーマをレビューし、変更を適用します。
このアプローチは、スキーマ作成プロセスを効率化します。
Back4app管理アプリは、データ管理を簡単にするノーコードインターフェースです。ドラッグアンドドロップ機能を使って、レコードを簡単に追加、変更、表示、または削除できます。
- 「その他」セクションに移動 あなたのBack4appダッシュボードで。
- 「管理アプリ」を選択 そして次にクリックします 「管理アプリを有効にする。」
- 管理者資格情報の設定: 最初の管理者アカウントを作成し、B4aAdminUserのようなシステムロールを割り当てます。

有効化されたら、管理アプリにログインしてバックエンドを管理します。

管理アプリ内で、あなたは:
- 新しいエントリを追加: コレクション(例:製品)で「レコードを追加」オプションを使用します。
- レコードを表示/変更: 任意のエントリをクリックして、その詳細を確認または更新します。
- エントリを削除: 削除機能を利用して、古いレコードを削除します。
この簡素化されたインターフェースは、データ管理タスクを簡素化することでユーザー体験を向上させます。
バックエンドが設定されたので、APIを使用してMarkoフロントエンドをBack4appと統合する時が来ました。
REST API呼び出しを使用して、MarkoアプリケーションでCRUD操作を実行します。
このコードスニペットは、REST API呼び出しを使用してBack4appから製品データを取得する方法を示しています。
アクセス制御リスト(ACL)をレコードに適用してセキュリティを強化します。たとえば、プライベートな製品エントリを作成するには:
Back4appダッシュボードを使用して、各コレクションのクラスレベルの権限(CLP)を設定し、認可されたユーザーのみが機密データにアクセスできるようにします。
Back4appは認証のためにユーザークラスを使用します。Markoアプリ内で、ユーザーのサインアップとログインを次のように実装します:
このスニペットは、REST呼び出しを使用したシンプルなユーザー登録フローを示しています。
Back4appのWebデプロイメント機能を使用すると、GitHubリポジトリから直接Markoプロジェクトをホストできます。
- ターミナルでプロジェクトディレクトリを開きます。
ビルドコマンドを実行します:
Bash1npm run buildこれにより、最適化された静的ファイルを含む build ディレクトリが生成されます。
- ビルドを確認します: build フォルダーに index.html とすべてのアセットディレクトリが含まれていることを確認します。
あなたのリポジトリには、Markoプロジェクトの完全なソースが含まれているべきです。典型的なディレクトリ構成は次のようになります:
Gitを初期化する(必要な場合):
Bash1git initファイルをステージする:
Bash1git add .変更をコミットする:
Bash1git commit -m "Marko CRUDフロントエンドの初期コミット"- GitHubリポジトリを作成してプッシュする: 例えば、次のようなリポジトリを使用します:Basic-CRUD-App-Marko-Frontend.
- Webデプロイメントにアクセスする: Back4appにサインインし、プロジェクト(Basic-CRUD-App-Marko)に移動し、Webデプロイメントセクションを開きます。
- GitHubアカウントを接続する: GitHubアカウントをリンクするための指示に従ってください。
- リポジトリとブランチを選択する: リポジトリ(例:Basic-CRUD-App-Marko-Frontend)とブランチ(例:main)を選択してデプロイします。
追加のパラメータを設定します:
- ビルドコマンド: 事前にビルドされた build フォルダーが存在しない場合、ビルドコマンドを設定します(例: npm run build)。
- 出力ディレクトリ: 出力フォルダーとして build を指定します。
- 環境変数: 必要な変数(APIキーなど)を入力します。
Dockerを好む場合は、プロジェクトリポジトリに Dockerfile を含めます:
デプロイ設定で、Dockerデプロイオプションを選択します。
- デプロイボタンを押す: Back4appはあなたのリポジトリを取得し、ビルドを実行し、アプリをデプロイします。
- プロセスを監視する: ビルドやランタイムの問題についてデプロイメントログを確認してください。
- サイトにアクセスする: デプロイが完了すると、Back4appはホストされたMarkoアプリケーションのURLを提供します。
- 提供されたURLを開く: アプリケーションが正しく読み込まれることを確認してください。
- アプリを通して実行する: すべてのページが読み込まれ、CRUD機能が期待通りに動作することを確認してください。
- 必要に応じてトラブルシューティングする: ブラウザの開発者ツールとBack4appのログを使用して問題に対処してください。
素晴らしい仕事です!あなたは今、MarkoとBack4appを使ってフル機能のCRUDアプリケーションを構築しました。
「Basic-CRUD-App-Marko」というプロジェクトを設定し、製品とユーザーのための詳細なコレクションを作成し、直感的な管理インターフェースを介してデータを管理し、REST APIを使用してMarkoフロントエンドを統合し、堅牢なコントロールでバックエンドを保護しました。
次のステップ:
- UIを強化する: 製品詳細ページ、検索機能、ライブ通知などの高度な機能を追加することを検討してください。
- バックエンド機能を拡張する: サーバーレス機能やサードパーティAPIの統合を検討して、機能を追加してください。
MarkoとBack4appでのコーディングを楽しんでください!