后端代碼:我猜這段代碼是正確的,因為它在郵遞員身上給出了正確的錯誤資訊。
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"});
}
前端代碼:
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(data) 不顯示狀態只顯示錯誤訊息,如何在 react.js 中訪問錯誤狀態代碼或訊息在這里。在上面的代碼中,data.status 在 react 中顯示 undefined 。
uj5u.com熱心網友回復:
狀態碼是回應物件的狀態屬性。您需要在呼叫之前檢查狀態代碼(或ok 標志)response.json()。
例子:
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(// ...)
uj5u.com熱心網友回復:
你也可以這樣做,async await根據你的問題使用更干凈的方法,你可以避免回呼地獄.then()
const res = await fetch("/signup",{
method:"POST",
headers: {
"Content-Type":"application/json"
},
body: JSON.stringify({
username, email, password, cpassword
})
});
有了這個,
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");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/357775.html
標籤:javascript 节点.js MongoDB 表达
