从0开始教你,如何进行前后端的数据库(MySQL)毗连

打印 上一主题 下一主题

主题 854|帖子 854|积分 2562

引言

很多小伙伴会好奇,如何从零开始实现一个完备的前后端项目,并将数据存储在 MySQL 数据库中,然后我们可以进行实时的更新,查询,修改,增长删除。
比如一个简朴的留言板系统,用户可以通过前端提交留言,后端将数据存储到 MySQL 中,再通过 API(如axios) 将数据展示在前端页面上。又大概一个视频留言系统,答应用户上传视频和评论,这些功能都需要前后端与数据库的协作。本篇博客将通过具体的例子,从基础出发,带你一步步完成从数据库搭建到前后端数据交互的全过程。
无论你是初学者照旧有一定基础的开辟者,这篇文章都能帮助你把握前后端与数据库毗连的焦点技能。

一、环境准备(具体的各环境安装细节会在下节单拎出来讲解)

在开始之前,需要确保以下环境已经准备停当:

  • 安装 MySQL

    • 前去 MySQL 官方网站 下载并安装 MySQL。
    • 在安装过程中,设置一个安全的 root 用户暗码,并选择开辟者默认设置。
    • 安装完成后,启动 MySQL 服务,使用命令行或图形界面工具(如 MySQL Workbench,博主用的是Navicat界面化工具)毗连数据库。

  • 安装 Node.js

    • 前去 Node.js 官方网站 下载并安装 LTS 版本。
    • 安装完成后,在终端输入以下命令,确认安装成功:
      1. node -v
      2. npm -v
      复制代码

  • 安装 Vue 开辟环境

    • 使用 Vue CLI 快速搭建项目。起首,安装 Vue CLI:
      1. npm install -g @vue/cli
      复制代码
    • 创建一个 Vue 项目:
      1. vue create frontend
      复制代码
      根据提示选择默认设置。

  • 测试工具

    • 推荐使用 Postman 或 curl 测试后端 API,方便调试接口。(可略)


二、创建数据库和表


  • 登录 MySQL 打开终端,输入以下命令登录 MySQL:
    1. mysql -u root -p
    复制代码
    输入暗码后进入 MySQL。固然,对于大部分伙伴来说肯定是用界面化操作最好(如navicat)

  • 创建数据库 创建一个名为 example_db(任意)的数据库:
    1. CREATE DATABASE example_db;
    复制代码
  • 使用数据库 切换到刚刚创建的数据库:
    1. USE example_db;
    复制代码
  • 创建数据表 创建一个 messages 表,用于存储留言信息:
    1. CREATE TABLE messages (
    2.     id INT AUTO_INCREMENT PRIMARY KEY,
    3.     username VARCHAR(255) NOT NULL,
    4.     content TEXT NOT NULL,
    5.     created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    6. );
    复制代码
  • 插入测试数据
    1. INSERT INTO messages (username, content) VALUES ('Alice', 'Hello, this is my first message!');
    2. INSERT INTO messages (username, content) VALUES ('Bob', 'This platform is great!');
    复制代码

三、后端毗连 MySQL

我们将使用 Node.js 和 mysql2 库毗连 MySQL。

  • 初始化项目 创建一个新的后端目录,并初始化项目:
    1. mkdir backend && cd backend
    2. npm init -y
    复制代码
  • 安装依靠
    1. npm install express mysql2 cors
    复制代码
  • 创建后端代码 新建 server.js 文件,写入以下代码:
    1. const express = require('express');
    2. const mysql = require('mysql2');
    3. const cors = require('cors');
    4. const app = express();
    5. const port = 3000;
    6. app.use(cors());
    7. app.use(express.json());
    8. // 创建数据库连接
    9. const db = mysql.createConnection({
    10.     host: 'localhost',
    11.     user: 'root',
    12.     password: 'yourpassword',
    13.     database: 'example_db'
    14. });
    15. // 测试数据库连接
    16. db.connect(err => {
    17.     if (err) {
    18.         console.error('数据库连接失败:', err);
    19.     } else {
    20.         console.log('成功连接到数据库');
    21.     }
    22. });
    23. // 获取所有留言
    24. app.get('/messages', (req, res) => {
    25.     db.query('SELECT * FROM messages', (err, results) => {
    26.         if (err) {
    27.             res.status(500).send(err);
    28.         } else {
    29.             res.json(results);
    30.         }
    31.     });
    32. });
    33. // 添加新留言
    34. app.post('/messages', (req, res) => {
    35.     const { username, content } = req.body;
    36.     db.query('INSERT INTO messages (username, content) VALUES (?, ?)', [username, content], (err, results) => {
    37.         if (err) {
    38.             res.status(500).send(err);
    39.         } else {
    40.             res.json({ id: results.insertId, username, content });
    41.         }
    42.     });
    43. });
    44. // 启动服务器
    45. app.listen(port, () => {
    46.     console.log(`服务器运行在 http://localhost:${port}`);
    47. });
    复制代码
  • 启动后端服务器
    1. node server.js
    复制代码
    访问 http://localhost:3000/messages,可以看到数据库中的留言。

四、前端毗连后端

我们使用 Vue 实现前端部分。(这里是已经创建过了vue项目文件的,项目文件名为frontend)

  • 创建组件 在 frontend/src/components 目录下创建 MessageBoard.vue 文件,写入以下代码:
    1. <template>
    2.   <div>
    3.     <h1>留言板</h1>
    4.     <ul>
    5.       <li v-for="message in messages" :key="message.id">
    6.         <strong>{{ message.username }}</strong>: {{ message.content }}
    7.       </li>
    8.     </ul>
    9.     <form @submit.prevent="addMessage">
    10.       <input v-model="username" placeholder="用户名" required />
    11.       <textarea v-model="content" placeholder="留言内容" required></textarea>
    12.       <button type="submit">提交</button>
    13.     </form>
    14.   </div>
    15. </template>
    16. <script>
    17. import axios from 'axios';
    18. export default {
    19.   data() {
    20.     return {
    21.       messages: [],
    22.       username: '',
    23.       content: ''
    24.     };
    25.   },
    26.   created() {
    27.     this.fetchMessages();
    28.   },
    29.   methods: {
    30.     async fetchMessages() {
    31.       try {
    32.         const response = await axios.get('http://localhost:3000/messages');
    33.         this.messages = response.data;
    34.       } catch (error) {
    35.         console.error('Error fetching messages:', error);
    36.       }
    37.     },
    38.     async addMessage() {
    39.       try {
    40.         const newMessage = { username: this.username, content: this.content };
    41.         await axios.post('http://localhost:3000/messages', newMessage);
    42.         this.messages.push(newMessage);
    43.         this.username = '';
    44.         this.content = '';
    45.       } catch (error) {
    46.         console.error('Error adding message:', error);
    47.       }
    48.     }
    49.   }
    50. };
    51. </script>
    复制代码
  • 集成组件 在src/App.vue 中引入该组件:
    1. <template>
    2.   <MessageBoard />
    3. </template>
    4. <script>
    5. import MessageBoard from './components/MessageBoard.vue';
    6. export default {
    7.   components: {
    8.     MessageBoard
    9.   }
    10. };
    11. </script>
    复制代码
  • 运行项目 在 frontend 目录下启动项目:
    1. npm run serve
    复制代码
    在欣赏器中访问 http://localhost:8080,可以看到留言板功能。

五、总结

通过上述步调,我们实现了一个简朴的留言板系统,涵盖了以下内容:

  • 使用 MySQL 创建数据库和数据表

    • 起首,创建一个 MySQL 数据库,用于存储留言信息。
    • 在数据库中创建一个表,定义留言的字段,如留言内容、用户信息、留言时间等。

  • 使用 Node.js 开辟后端接口并毗连数据库

    • 使用 Node.js 和 Express 框架开辟后端 API。
    • 安装并设置 MySQL 驱动(如 mysql2 或 sequelize)来毗连数据库。
    • 创建相关的 API 接口,比方 GET 用于获取留言列表,POST 用于添加留言等。
    • 后端与数据库交互,处理数据的增编削查(CRUD)操作。

  • 使用 Vue 开辟前端页面,与后端进行交互

    • 使用 Vue.js 创建前端页面,展示留言列表,并提供用户输入留言的表单。
    • 使用 axios 或 fetch 等工具来发送 HTTP 哀求与后端接口交互。
    • 将用户的留言体现在前端页面上,并实时更新。

通过这样的实现,用户可以在前端输入留言,后端吸收并存储到 MySQL 数据库中,留言列表也会在页面上实时体现更新。这是一个简朴的 CRUD 应用,得当入门学习 Web 开辟、数据库管理和前后端交互。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我爱普洱茶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表