当我通过邮递员发送用户名、密码和电子邮件时,它可以工作,并将信息添加到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,
});