最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

React、NodeJs、MySQL:请求失败,状态码为 404',名称:'AxiosError'

网站源码admin29浏览0评论

React、NodeJs、MySQL:请求失败,状态码为 404',名称:'AxiosError'

React、NodeJs、MySQL:请求失败,状态码为 404',名称:'AxiosError'

我想使用 axios 将我的注册信息从我的客户端发送到我的 api。在此过程中发生以下错误:

我已经尝试了不同的选项来修复此错误,但仍然没有任何效果。我试图将 localhost 更改为 127.0.0.1 或在 axios.post 方法中输入完整的 url。但是后来我得到了一个 CORS 错误,我也无法修复。我的数据库在默认端口 3306 上运行,我的反应客户端在 3000 上运行。我在 package.json 中放置了一个代理,我认为这不起作用。你对我有什么解决办法吗?也可以向我解释一下吗?我想提高我的技能;)

客户端注册.jsx

import React, { useState } from 'react';
import {Link} from 'react-router-dom';
import axios from 'axios';


const Register = () => {
  const [inputs, setInputs] = useState({
    username:"",
    email:"",
    passwort:"",
  })

  const handleChange = (e) => {
    setInputs((prev) => ({ ...prev, [e.target.name]: e.target.value }));
  };

  const handleSubmit = async (e) => {
    e.preventDefault();
    try {
      const res = await axios.post("/auth/register", {inputs});
      console.log(res);
  
    } catch (err) {
      console.log(err);
    }
  };

  return (
    <div className='auth'>
        <h1>Registrieren</h1>
        <form>
            <input required type='benutzername' placeholder='Benutzername' name='benutzername' onChange={handleChange}></input>
            <input required type='email' placeholder='E-Mail' name='email' onChange={handleChange}></input>
            <input required type='passwort' placeholder='Passwort' name='passwort' onChange={handleChange}></input>
            <button onClick={handleSubmit}>Registrieren</button>
            <p>Ein Problem ist aufgetreten!</p>
            <span>Sie haben bereits ein Konto? <Link to="/login">Login</Link></span>
        </form>
    </div>
  );
}

客户端包.json:

{
  "name": "booking",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.16.4",
    "@testing-library/react": "^13.1.1",
    "@testing-library/user-event": "^13.5.0",
    "axios": "^1.4.0",
    "react": "^18.0.0",
    "react-dom": "^18.0.0",
    "react-quill": "^2.0.0",
    "react-router-dom": "^6.10.0",
    "react-scripts": "5.0.1",
    "sass": "^1.62.1",
    "web-vitals": "^2.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "proxy": "http://127.0.0.1:8800/api/"
}

api db.js

import mysql from "mysql";

export const db = mysql.createConnection({
    host:"127.0.0.1",
    user: "root",
    password: "cedricblog123",
    database: "cedricblog"
})

api 索引.js

const app = express()

app.use(express.json())
app.use("/api/auth", authRoutes)
app.use("/api/users", userRoutes)
app.use("/api/posts", postRoutes)

app.listen(8800, () => {
    console.log("connected!")
})

api 控制器 auth.js

import {db} from "../db.js"
import bcrypt from "bcryptjs"

export const register = (req, res) =>{

//Check existing user
const q = "SELECT * FROM users WHERE email = ? OR benutzername = ?"

db.query(q, [req.body.email, req.body.name], (err, data) => {
    if(err) return res.json(err);
    if(data.length) return res.status(409).json("User already exists!");

    // Hash to password and create user
    const salt = bcrypt.genSaltSync(10);
    const hash = bcrypt.hashSync(req.body.password, salt);

    const q = "INSERT INTO users(`benutzername`,`email`,`passwort`) VALUES (?)"
    const values = [
        req.body.username,
        req.body.email,
        hash,
    ]

    db.query(q, [values], (err, data) =>{
        if(err) return res.json(err);
        return res.status(200).json("User has been created.");
    })
})

   }

api 路由 auth.js

const router = express.Router()

router.post("/register",register);
router.post("/login",login);
router.post("/logout",logout);

export default router
回答如下:
发布评论

评论列表(0)

  1. 暂无评论