为什么当我在Mac上运行axios时,我的Mac上总是出现axios错误404



我是一名新的开发人员,当我在Mac上运行React应用程序时,我一直收到这个错误:加载资源失败:服务器响应状态为404(未找到(

该错误主要针对我的localhost/showpassword和/addpassword。数据应该发送到mysql,但什么也没发送,我的结果网格/表显示空值。我不确定这个错误是因为我连接到了错误的端口,还是因为我需要下载Mac依赖项/库。任何见解和帮助都将受到的赞赏

这是我的Axios客户端:

import "./App.css";
import {useState, useEffect} from "react";
import Axios from "axios";
function App() {
const [password, setPassword] = useState("");
const [title, setTitle] = useState("");
const [passwordList, setPasswordList] = useState([]);
useEffect(() => {
Axios.get("http://localhost:3001/showpasswords").then((response) => {
setPasswordList(response.data);
});
}, []);

const addPassword = () => {
Axios.post("http://localhost:3001/addpassword",  {
password: password, 
title: title,
});
};
const decryptPassword = (encryption) => {
Axios.post("http://localhost:3001/decryptpassword", {
password: encryption.password, 
iv: encryption.iv,
}).then((response) => {
setPasswordList(
passwordList.map((val) => {
return val.id == encryption.id 
? {
id: val.id, 
password: val.password, 
title: response.data, 
iv: val.iv,
} 
: val;
})
);
});
};

return (
<div className="App">
<div  className="AddsPassword">
<input 
type="text" 
placeholder="Ex. password123" 
onChange={(event) => {
setPassword(event.target.value);
}}
/>    
<input 
type="text" 
placeholder="Ex. Facebook" 
onChange={(event) => {
setTitle(event.target.value);
}}
/>
<button onClick={addPassword}> Add Password</button>
</div>

这是我的服务器:

const express = require("express");
const app = express();
const mysql = require("mysql");
const cors = require('cors');
const PORT = 3001;
const {encrypt, decrypt} = require("./EncryptionHandler");
app.use(cors());
app.use(express.json());
const db = mysql.createConnection({
user: "root",
host: "localhost",
password: "password",
database: "PasswordManager",
});
app.post("/addpassword", (req, res) => {
const { password, title} = req.body;
const hashedPassword = encrypt(password);
db.query(
"INSERT INTO passwords (password, title, iv) VALUES (?,?,?)",
[hashedPassword.password, title, hashedPassword.iv],
(err, result) =>  {
if (err) {
console.log(err);
} else {
res.send("Success");
}
}
);
});
app.get("/showpasswords", (req, res) => {
db.query("SELECT * FROM passwords;", (err, result) => {
if (err) {
console.log(err);
} else {
res.send(result);
}
});
});
app.post("/decryptpassword", (req, res) => {
res.send(decrypt(req.body));
});
app.listen(PORT, () => {
console.log("Server is running");
});

我认为存在数据库连接问题。

app.get("/showpasswords", (req, res) => {
db.connect((err){
if(err) throw err;
console.log("DB connected");
// your code.
db.query("SELECT * FROM passwords;", (err, result) => {
if (err) {
console.log(err);
return res.send(err);
} else {
res.send(result);
}
});
});
});

看看你是否可以连接到数据库,如果不能,它会给你一个错误。让我知道这是否有效。

最新更新