javascript - TypeError:无法获取和 POST 获取状态 = 已取消
问题描述
我通过使用POST fetch api并将数据成功存储到我的数据库中,将用户输入数据从 React js 传递到节点 js 即后端。但是fetch api没有成功返回对象,并且在谷歌开发工具中显示网络状态等于取消。我尝试了每件事,但我不知道如何解决它。谢谢。
客户注册.jsx
const onSubmit = async (e) => {
const { fname, lname, email, password, address } = state;
await fetch('/customer-registration', {
method: 'POST',
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
fname: fname, lname: lname, email: email, password: password, address: address
})
}).then((res)=>{
console.log(`this is my res ${res}`);
window.alert('Customer Registration successfull');
}).catch((error)=>{
window.alert(error);
console.log(error);
})
}
路由器.js
router.post('/customer-registration',async(req,res)=>{
const {fname,lname,email,password,address}=req.body;
try {
const valid=await myModel.findOne({email:email});
if(valid){
const flag=true;
console.log('Email already exist');
}else{
const finalData=new myModel({fname,lname,email,password,address});
const data=await finalData.save();
if(data){
console.log('Data saved to db');
console.log(data);
res.json(data);
}
}
} catch (error) {
console.log('Data not saved');
}
})
解决方案
您收到该错误是因为您没有确保您的 nodejs 返回响应。
router.post('/customer-registration',async(req,res)=>{
const {fname,lname,email,password,address}=req.body;
try {
const valid=await myModel.findOne({email:email});
if(valid){
const flag=true;
console.log('Email already exist');
}else{
const finalData=new myModel({fname,lname,email,password,address});
const data=await finalData.save();
if(data){
console.log('Data saved to db');
console.log(data);
return res.json(data);
}
return res.json({ok: false }) //you need to ensure you return something.
}
} catch (error) {
console.log('Data not saved');
return res.status(400).end() // you need to return something even if it's an error.
}
})
推荐阅读
- android - Firebase recyclerview 在开始新活动并返回时始终刷新并丢失其滚动位置
- unity3d - 为什么递归调用警告ropertiesGUI()?我应该修复它还是忽略它?
- ruby-on-rails - 即使我在 rails 中定义了方法,我也无法调用它
- vuejs2 - 如何在Vue路由器中处理带有“/”的URL并重定向到其他组件
- javascript - 使用 html、css、jquery 的手风琴
- python - 数值积分:为什么我的轨道模拟会产生错误的结果?
- java - 对运行时已知类的向下转换引用
- javascript - 是否可以在 Adobe Illustrator 中复制文本范围(由脚本选择)?
- python - 具有正确列值时出现键错误
- r - 创建的包未从 NAMESPACE 文件中导入的包中运行函数