首页 > web前端 > js教程 > 正文

从初学者到专业人士:用 4 时间构建您的第一个全栈应用程序

Linda Hamilton
发布: 2024-11-23 20:58:16
原创
642 人浏览过

From Beginner to Pro: Building Your First Full-Stack App in 4

构建您的第一个全栈应用程序是任何开发人员旅程中的一个里程碑。在本指南中,我们将引导您完成使用 React、Node.js 和 MongoDB 创建任务管理器应用程序的过程。在此过程中,我们将解释从设置环境到在 Vercel 和 Render 上部署应用程序的每一步。

最后,您将拥有一个实时、功能齐全的应用程序,并有信心处理更复杂的项目。

  1. 先决条件:准备工具 在深入研究代码之前,让我们确保您的开发环境已准备就绪。这是您需要的:

必备软件
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. 设置您的项目

第 1 步:创建项目结构

打开终端并为您的应用程序创建一个目录:

mkdir 任务管理器应用程序 && cd 任务管理器应用程序

初始化 Git 存储库:

git 初始化

设置 package.json 文件来管理依赖项:

npm init -y

第 2 步:安装依赖项

后端依赖

后端将使用 Node.js 和 Express 构建,并将连接到 MongoDB 进行数据存储。

安装所需的软件包:

npm install express mongoose dotenv cors
npm install --save-dev nodemon
登录后复制
登录后复制
  • express:用于构建服务器端应用程序的框架。
  • mongoose:MongoDB 的对象数据建模 (ODM) 库。
  • dotenv:用于管理环境变量。
  • cors:处理跨域请求的中间件。
  • nodemon:开发过程中服务器自动重启的工具。

前端依赖项

前端将使用 React 来构建用户界面。

设置 React 应用程序:

npx create-react-app 客户端

cd 客户端

在 React 目录中,安装其他库:

npm install axios react-router-dom

  • axios:用于向后端 API 发出 HTTP 请求。
  • react-router-dom:用于管理应用程序中的路由。
  1. 构建后端:使用 Express 和 MongoDB 的 API

第 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

第 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
登录后复制
  1. 部署:让您的应用上线

渲染上的后端部署

将您的代码推送到 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中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板