我是一名新的开发人员,当我在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);
}
});
});
});
看看你是否可以连接到数据库,如果不能,它会给你一个错误。让我知道这是否有效。