nodejs mongoDB连接登录页面



当我通过邮递员发送用户名、密码和电子邮件时,它可以工作,并将信息添加到mongodb模式中,但在react的登录页面中,它不起作用。如果有人能帮忙,我将不胜感激。非常感谢。

控制台

反应逻辑:

const [username, setUserName] = useState("");
const [password, setPassword] = useState("");
const [email, setEmail] = useState("");

const handleSubmit = async (e) =>{
console.log(".....");
e.preventDefault();
const res =  await axios.post("/auth/register", {
username,
email,
password,
});
console.log(res)
};

Node.js逻辑:

router.post("/register", async (req, res) => {

console.log("here")
try{   
const salt = await bcrypt.genSalt(10);
const hashedPassword = await bcrypt.hash(req.body.password, salt);
const newUser = new User({
username: req.body.username,
email: req.body.email,
password: hashedPassword,
});
const user = await newUser.save(); 
res.status(200).json(user);
} catch(err) {
console.log(err);
}

}
);

/////////////////////
app.use("/api/auth", authRoute);

app.use("/",(req,res)=>{
console.log("main url")
})
app.listen("3000",()=>{
console.log("backend running");
})

确保将请求发送到正确的路由/服务器,也许您没有键入端口或路由本身。

我认为这行const res = await axios.post("/auth/register", {与您的后端app.use("/api/auth", authRoute);不匹配

看起来您在/register端点上定义了注册逻辑,但您正在向/auth/register端点发送请求。

尝试更改React逻辑以将请求发送到/register端点:

const res =  await axios.post("/register", {
username,
email,
password,
});

最新更新