Cuando envío el nombre de usuario, la contraseña, el correo electrónico del cartero, funciona y agrega información al esquema mongodb, pero en la página de inicio de sesión en reaccionar no funciona. Realmente apreciaría si alguien pudiera ayudar. Muchas gracias.
Reaccionar lógica:
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) };
Lógica de 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"); })
asegúrese de enviar la solicitud a la ruta/servidor correcto, tal vez no escribió el puerto o la ruta en sí.
Creo que esta línea const res = await axios.post("/auth/register", {
no coincide con su backend app.use("/api/auth", authRoute);
Parece que definió su lógica de registro en /register
endpoint, PERO está enviando una solicitud a /auth/register
endpoint.
Intente cambiar su lógica React para enviar una solicitud a /register
punto final:
const res = await axios.post("/register", { username, email, password, });