问题描述
我正在制作一个博览会 MERN 应用程序,在登录组件中,当用户单击登录按钮并验证/检查该用户电子邮件和密码是否存在于数据库中时,我试图从数据库中获取数据或不。我正在使用快速路由器并尝试在 axios 中获取数据。但问题是它给出了一个错误“错误:请求失败,状态码为 404”。下面是我的代码:
routeSignIn.js
const express = require("express");
const router = express.Router();
const User = require("../models/User");
router.get("/",async (req,res) => {
try {
const getUser = await User.find();
res.json(getUser);
} catch (err) {
res.send("Error: " + err);
}
});
module.exports = router;
Server.js
const express = require("express");
const app = express();
const mongoose = require("mongoose");
const url = "mongodb://localhost/my-project1";
mongoose.connect(url,{ useNewUrlParser: true });
const con = mongoose.connection;
app.use(express.json());
const routeSignIn = require("../route/routeSignIn");
app.use("/getUser",routeSignIn);
con.on("open",() => {
console.log("Database is connected...");
});
const server = app.listen(3000,() => {
const { address,port } = server.address();
console.log(`Server started. Listening at
http://${address}:${port}`);
});
登录.js
const [data,setData] = useState({
email: "",password: "",});
const loginHandle = (email,password) => {
//I believe this is where the problem is
const foundUser = () => {
axios
.get("http://192.168.29.7:3000/getUser")
.then((res) => {
console.log(res);
setData({
email: res.email,password: res.password,});
})
.catch((err) => {
console.log("Error fetching data: ",err);
});
return email == email && password == password;
};
if (data.email.length == 0 || data.password.length == 0) {
Alert.alert("Email or password field cannot be empty.");
return;
}
if (foundUser().length == 0) {
Alert.alert("Invalid User,Username or password is incorrect");
return;
}
signIn(foundUser());
};
return(
<TouchableOpacity
onPress={() => {
loginHandle(data.email,data.password);
}}
>
)
App.js
const authContext = useMemo(
() => ({
signIn: (foundUser) => {
const userEmail = foundUser.email;
dispatch({ type: "LOGIN",email: userEmail });
},
上面代码中发生的事情是,当用户单击登录按钮时,loginhandle 函数(在 SignIn.js 中)被调用,数据将在一个名为 foundUser 的函数中获取,该函数将传递给 signIn (foundUser) 位于 useMemo 内的 apps.js 中... 非常感谢...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)