You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React+Node.js项目无法连接MySQL数据库,数据无法写入求助

解决React+Node.js+MySQL项目的数据库连接失败问题

你的Node.js代码只创建了数据库连接对象,但没有主动发起连接,也没有配置连接错误的监听逻辑,这就是连接失败却无报错的核心原因。以下是分步解决方案:

1. 主动发起数据库连接并添加错误处理

在创建db连接对象后,必须调用connect()方法发起连接,并通过回调捕获连接错误。修改你的Node.js代码:

const express = require("express");
const app = express();
const mysql = require("mysql");
const cors = require("cors");
const PORT = 3001;

app.use(cors());
app.use(express.json());

const db = mysql.createConnection({
    user: "root",
    host: "localhost",
    password: "root",
    database: "passwordmanager",
})

// 新增:主动发起连接并处理连接错误
db.connect((err) => {
    if (err) {
        console.error("数据库连接失败:", err);
        return;
    }
    console.log("已成功连接到MySQL数据库");
})

app.post("/addpassword",(req,res)=>{
    const {password,title} =req.body;

    db.query("INSERT INTO passwords (password,title) VALUES (?,?)",[password,title],(err,result)=>{
        if(err){
            console.log(err);
            return res.status(500).send("数据库操作失败");
        }
        res.send("Success");
    })
})

app.listen(PORT,()=>{
    console.log("server is running on port", PORT)
})

2. 验证数据库基础配置的正确性

  • 确认MySQL服务正在运行:本地环境下检查XAMPP/WAMP的MySQL服务是否启动,或通过命令行执行net start mysql(Windows)/sudo systemctl start mysql(Linux/Mac)确认服务状态。
  • 核对数据库账号密码:确保root用户的密码和代码中配置的password: "root"一致,若MySQL root无密码,需将该项设为""。
  • 确认目标数据库和表存在:
    • 登录MySQL控制台,执行USE passwordmanager;,若报错说明数据库未创建,需先执行CREATE DATABASE passwordmanager;。
    • 执行DESC passwords;,确认表中存在password和title两个字段,若表未创建,需执行:
      CREATE TABLE passwords (
          id INT AUTO_INCREMENT PRIMARY KEY,
          password VARCHAR(255) NOT NULL,
          title VARCHAR(255) NOT NULL
      );
      

3. 完善前端请求的错误反馈

你的前端Axios请求没有处理错误,即使后端连接失败,前端也无法感知。修改addPassword函数:

const addPassword= ()=>{
  Axios.post("http://localhost:3001/addpassword",{
    password: password,
    title:title
  })
  .then(response => {
    console.log(response.data);
    // 可添加成功后的UI反馈,比如清空输入框
    setPassword("");
    setTitle("");
  })
  .catch(error => {
    console.error("请求失败:", error);
    alert("添加密码失败,请检查服务状态");
  });
}

内容的提问来源于stack exchange,提问作者Shubhankar Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 19:35:36