código de fondo: este código es correcto, supongo, porque da un mensaje de error correcto en el cartero.
const userExist = await User.findOne({email:email}) if(userExist){ return res.status(422).send({error:"email is same"}); }else if( password != cpassword){ return res.status(422).send({error:"password not same"}); }else{ const user = new User({username,email,password,cpassword}); await user.save(); res.status(200).send({message:"done"}); }Código de interfaz:
const res = await fetch("/signup",{ method:"POST", headers: { "Content-Type":"application/json" }, body: JSON.stringify({ username, email, password, cpassword }) }); const data = await res.json(); console.log(data); if(data.status === 422){ window.alert("Invalid Registration"); console.log("Invalid Registration"); } else{ window.alert("Registration"); console.log("Registration"); history.push("/login"); }Console.log (datos) no muestra el estado, solo muestra el mensaje de error, cómo acceder al código de estado de error o mensajes en react.js aquí. Y data.status muestra indefinido en reaccionar en el código anterior.
El código de estado es la propiedad de estado en el objeto de respuesta. Debe verificar el código de estado (o el indicador ok ) antes de llamar a response.json() .
Ejemplo:
fetch(`${baseUrl}/signup `, { method:"POST", headers: { "Content-Type":"application/json" }, body: JSON.stringify({ username, email, password, password }) }) .then(function(response) { console.log(response.status); // Will show you the status if (!response.ok) { throw new Error("HTTP status " + response.status); } return response.json(); }) .then(// ...)también puede hacerlo, con async await un enfoque más limpio según su pregunta, puede evitar la devolución de llamada con .then()
const res = await fetch("/signup",{ method:"POST", headers: { "Content-Type":"application/json" }, body: JSON.stringify({ username, email, password, cpassword }) });con este,
console.log(res.status) const status = res.status; if(status.OK){ window.alert("Registration"); console.log("Registration"); history.push("/login"); } else{ window.alert("Invalid Registration"); console.log("Invalid Registration"); }