首页 > 数据库 >实战篇:(二)React 创建项目并连接 MySQL 后台的实战教程

实战篇:(二)React 创建项目并连接 MySQL 后台的实战教程

时间:2024-10-15 08:51:48浏览次数:8  
标签:Node 实战篇 users 项目 DB React MySQL

React 创建项目并连接 MySQL 后台的实战教程

一、项目概述

本篇博客将介绍如何使用 React 搭建前端项目,并通过 Node.js 和 MySQL 实现简单的后台数据连接。通过这个项目,你将掌握从前端到后端数据库的基础开发流程,适合初学者或正在项目实战中的开发者。

二、项目准备

1. 环境搭建

  • Node.js:确保已经安装 Node.js,可以通过命令 node -v 检查。
  • npm 或 yarn:用于管理项目的依赖包。
  • MySQL:作为数据库管理工具。
  • VSCode:代码编辑工具,安装必要的插件如 ESLint、Prettier 等。

2. 初始化 React 项目

使用 create-react-app 快速创建一个 React 项目:

npx create-react-app my-react-project
cd my-react-project

在这里插入图片描述

项目初始化完成后,可以使用以下命令启动开发服务器:

npm start

现在你可以在浏览器中访问 http://localhost:3000,查看 React 应用是否运行成功。
在这里插入图片描述

三、项目搭建 - 实战步骤

注:工具篇:(三)MacOS 两种方式下载 Node.js 并进行测试教程
注:工具篇:(一)MacOS 下使用 Navicat 管理 MySQL 数据库:详细图文教程与常见问题解决
注:工具篇:(二)MacOS 下载 MySQL 并进行配置连接,使用 VSCode 创建 Node 项目-亲测有效
注:工具篇:(五)MacOS使用Postman 测试接口:从 创建MySQL数据库到 Node 项目

1. 创建后端(Node + Express)

初始化 Node 项目

首先在项目根目录下创建一个新的文件夹用于后端代码:

mkdir my-react-node
cd my-react-node
npm init -y

在这里插入图片描述

然后安装必要的依赖包:

npm install express mysql2 dotenv
创建 Express 服务器

server 文件夹中创建 index.js 文件,配置一个简单的 Express 服务器:

const express = require('express');
const app = express();
const mysql = require('mysql2');
require('dotenv').config();

const db = mysql.createConnection({
  host: process.env.DB_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME
});

db.connect((err) => {
  if (err) throw err;
  console.log('Connected to MySQL database');
});

app.use(express.json());

app.get('/api/users', (req, res) => {
  db.query('SELECT * FROM users', (err, result) => {
    if (err) throw err;
    res.json(result);
  });
});

app.listen(5000, () => {
  console.log('Server is running on port 5000');
});
配置 .env 文件

server 文件夹中创建 .env 文件,添加数据库配置信息:

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=yourpassword
DB_NAME=mydatabase

在这里插入图片描述

数据库表设计

使用 Navicat 或 MySQL 命令行创建一个 users 表:

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  email VARCHAR(255) NOT NULL
);

四、React 前端与 Node 后端的连接

1. 安装 Axios

在前端项目中使用 axios 进行 API 请求:

npm install axios

2. 创建 API 请求

在 React 项目中创建一个简单的组件用于显示用户数据:

import React, { useEffect, useState } from 'react';
import axios from 'axios';

const Users = () => {
  const [users, setUsers] = useState([]);

  useEffect(() => {
    axios.get('http://localhost:5000/api/users')
      .then(response => {
        setUsers(response.data);
      })
      .catch(error => {
        console.error('There was an error fetching the users!', error);
      });
  }, []);

  return (
    <div>
      <h1>Users List</h1>
      <ul>
        {users.map(user => (
          <li key={user.id}>{user.name} - {user.email}</li>
        ))}
      </ul>
    </div>
  );
}

export default Users;

3. 跨域配置

为了让 React 前端能够访问 Node 后端 API,需要在服务器端添加 CORS 中间件:

npm install cors

index.js 中添加以下代码:

const cors = require('cors');
app.use(cors());

五、总结

通过本篇博客的实战步骤,成功搭建了一个 React 前端项目,并使用 Node.js 和 MySQL 作为后端服务。这种全栈开发的模式适合中小型项目开发,同时也为学习前后端分离架构打下坚实的基础。后续可以考虑增加更多功能,如用户注册、登录等。


你可以根据需求进一步扩展和定制项目。希望这篇教程对你有所帮助!

标签:Node,实战篇,users,项目,DB,React,MySQL
From: https://blog.csdn.net/mmc123125/article/details/142912548

相关文章

  • Mysql互为主备配置
    背景项目中某些设备,包含两块主控板,需要实现某一块板卡拔掉之后,另一块主控板继续提供服务基础环境CentOS7x86-64位mysql8.0.39nginxwindows1.18.0基础参数虚拟机A:192.168.100.100虚拟机B:192.168.100.110宿主机:192.168.0.5主备配置默认已成功安装mysql,以后再增加......
  • proxy代理机制和工作原理,reactive是怎么通过proxy实现响应式的
    1.什么是ProxyProxy是JavaScript中一个用于创建代理对象的构造函数,允许你定义基本操作(如属性查找、赋值、枚举、函数调用等)的自定义行为。通过Proxy,你可以对一个对象进行拦截,并在该对象的操作上添加自定义逻辑。在Vue3中,Proxy被广泛用于实现响应式系统。2.代理......
  • Scala连接数据库(mysql,redis)
    1、Scala连接mysql数据库:importjava.sql.{Connection,DriverManager,PreparedStatement,ResultSet}objectmysqlConn{defmain(args:Array[String]):Unit={Class.forName("com.mysql.jdbc.Driver")valconn:Connection=DriverManager.getCon......
  • 【MySQL】内置函数
    >作者:დ旧言~>座右铭:松树千年终是朽,槿花一日自为荣。>目标:了解MySQL的相关的内置函数,并能熟练使用。>毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安!>专栏选自:带你玩转MySQL>望小伙伴们点赞......
  • centos 让 mysql 随系统启动
    [root@VM-8-12-centos~]#systemctlenablemysqlFailedtoexecuteoperation:Nosuchfileordirectory systemctlstartmysqldJobformysqld.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatusmysqld.service"......
  • React组件通信
    React组件通信一、父传子方式1:​通过在子组件标签上设置属性值传递,子组件函数通过props参数接收如://定义子组件functionSon(props){//通过标签属性传递,属性以及对应的值都会通过props参数接收return<div>父组件传递的属性值:name={props.name}</div>......
  • mysql5.7及以后版本设置密码
    开启skip-grant-tables配置由于安装时没有指定密码,需要配置`/etc/my.cnf`(或者`/etc/mysql/my.cnf`等已存在的配置文件),在[mysqld]下一行加上skip-grant-tables,表示无密码登入`vim/etc/my.cnf`输入“:wq”保存退出完成后重启mysqlsystemctlrestartmysqld重启后,重新登录mysq......
  • orthanc 编译安装mysql S3
    克隆代码orthancserverhgclonehttps://orthanc.uclouvain.be/hg/orthanc/sudoapt-getinstallcurlzipunziptarcdvcpkg&&./bootstrap-vcpkg.shmysqlinstalllibmysqlclinet-devset(CMAKE_BUILD_TYPE"Release")set(ORTHANC_FRAMEWORK_VE......
  • MySQL表的操作
    前面我们学习了库的操作,之后学习了MySQL中的数据类型,有了这些数据类型,我们就可以来进行表的相关操作了1.查看所有表showtables;在查看表之前,我们要先选择库在选择了库之后,查看2.创建表2.1语法CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name(fieldda......
  • Docker 使用Mysql 部署Baget
    一、建立配置文件1.新建文件夹mkdir/panel/docker/baget-data/packages2.新建配置文件mk/panel/docker/baget-data/baget.envApiKey=APISSSSSStorage__Type=FileSystemStorage__Path=/panel/docker/baget-data/packagesDatabase__Type=MySqlDatabase__ConnectionS......