最初のフルスタック アプリケーションを構築することは、開発者の道のりにおいて記念碑的なマイルストーンです。このガイドでは、React、Node.js、MongoDB を使用してタスク マネージャー アプリを作成するプロセスについて説明します。その過程で、環境のセットアップから Vercel と Render へのアプリのデプロイまで、すべての手順を説明します。
最後には、ライブで完全に機能するアプリが完成し、自信を持ってより複雑なプロジェクトに取り組むことができるようになります。
必須ソフトウェア
Node.js (ここからダウンロード):https://nodejs.org/fr
Node.js は、ブラウザーの外部で JavaScript を実行できるようにするランタイムです。これをインストールすると、依存関係を処理するための組み込みパッケージ マネージャー npm が使用されます。
node -v && npm -v
インストール後に上記のコマンドを実行してバージョンを確認します。
Git (ここからダウンロード):https://git-scm.com/
Git は、コードへの変更を追跡し、共同作業を容易にするバージョン管理システムです。
MongoDB Atlas (ここからサインアップ):https://www.mongodb.com/products/platform/atlas-database
Atlas は、初心者に最適なクラウドホスト型の MongoDB データベースを無料で提供しています。
Vercel CLI (インストール ガイド):https://vercel.com/
Vercel は、React フロントエンドを迅速かつ効率的にデプロイするためのプラットフォームです。
レンダーアカウント (ここからサインアップ):https://render.com/
Render は、バックエンド サービスを展開するための堅牢な環境を提供します。
ステップ 1: プロジェクト構造を作成する
ターミナルを開き、アプリのディレクトリを作成します。
mkdir タスク マネージャー アプリ && cd タスク マネージャー アプリ
Git リポジトリを初期化します:
git init
依存関係を管理するために package.json ファイルを設定します:
npm init -y
ステップ 2: 依存関係をインストールする
バックエンドの依存関係
バックエンドは Node.js と Express で構築され、データ ストレージのために MongoDB に接続されます。
必要なパッケージをインストールします:
npm install express mongoose dotenv cors npm install --save-dev nodemon
フロントエンドの依存関係
フロントエンドはユーザー インターフェイスの構築に React を使用します。
React アプリをセットアップします:
npx create-react-app クライアント
CD クライアント
React ディレクトリ内に、追加のライブラリをインストールします。
npm install axios react-router-dom
ステップ 1: ディレクトリ構造を作成する
プロジェクトを次のように整理します:
npm install express mongoose dotenv cors npm install --save-dev nodemon
ステップ 2: Express サーバーを作成する
server/ ディレクトリ内に、server.js ファイルを作成します。
task-manager-app/ ├── server/ │ ├── models/ # Contains database models │ ├── routes/ # Contains API routes │ ├── .env # Stores environment variables │ ├── server.js # Main server file
ステップ 3: 環境変数を構成する
server/ ディレクトリに .env ファイルを作成し、MongoDB を追加します
接続文字列:
MONGO_URI=
ステップ 4: Mongoose モデルを定義する
server/models/ ディレクトリ内に、Task.js を作成します。
require('dotenv').config(); const express = require('express'); const mongoose = require('mongoose'); const cors = require('cors'); const app = express(); const PORT = process.env.PORT || 5000; app.use(cors()); app.use(express.json()); // Connect to MongoDB mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log("Connected to MongoDB")) .catch(err => console.error(err)); // API Routes app.use('/api/tasks', require('./routes/taskRoutes')); // Start the server app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
ステップ 5: API ルートを作成する
server/routes/ ディレクトリ内に、taskRoutes.js を作成します。
const mongoose = require('mongoose'); const TaskSchema = new mongoose.Schema({ title: { type: String, required: true }, completed: { type: Boolean, default: false }, }, { timestamps: true }); module.exports = mongoose.model('Task', TaskSchema);
ステップ 1: React コンポーネントをセットアップする
React ディレクトリを次のように整理します:
const express = require('express'); const router = express.Router(); const Task = require('../models/Task'); // Fetch all tasks router.get('/', async (req, res) => { const tasks = await Task.find(); res.json(tasks); }); // Add a new task router.post('/', async (req, res) => { const task = await Task.create(req.body); res.json(task); }); // Update a task router.put('/:id', async (req, res) => { const task = await Task.findByIdAndUpdate(req.params.id, req.body, { new: true }); res.json(task); }); // Delete a task router.delete('/:id', async (req, res) => { await Task.findByIdAndDelete(req.params.id); res.json({ message: 'Task deleted' }); }); module.exports = router;
ステップ 2: API からデータを取得する
src/components/TaskList.js 内:
client/ ├── src/ │ ├── components/ │ │ ├── TaskList.js │ │ ├── AddTask.js │ │ ├── Task.js │ ├── App.js │ ├── index.js
レンダリング時のバックエンド展開
コードを GitHub にプッシュします:
import React, { useEffect, useState } from 'react'; import axios from 'axios'; const TaskList = () => { const [tasks, setTasks] = useState([]); useEffect(() => { axios.get('http://localhost:5000/api/tasks') .then(response => setTasks(response.data)) .catch(err => console.error(err)); }, []); return ( <div> {tasks.map(task => ( <div key={task._id}> <h3>{task.title}</h3> <p>{task.completed ? 'Completed' : 'Incomplete'}</p> </div> ))} </div> ); }; export default TaskList;
レンダリング時にデプロイ:
リポジトリに接続します。
ルート ディレクトリを /server に設定します。
環境変数 (例: MONGO_URI) を追加します。
Vercel へのフロントエンド展開
クライアント ディレクトリに移動します:
CD クライアント
デプロイ:
vercel (https://vercel.com/)
結論
おめでとう! ?初めてのフルスタック アプリケーションを構築してデプロイしました。このプロセスをマスターすれば、より複雑で影響力のあるプロジェクトを作成できるようになります。
つながりを維持
? GladiatorsBattle.com で詳細をご覧ください
? Twitter でフォローしてください
? DEV.to
について詳しく読む
? CodePen のインタラクティブなデモ
一緒に素晴らしいものを作りましょう! ?
以上が初心者からプロまで: 初めてのフルスタック アプリを 4 つで構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。